changeset 1071:f9084d3862e8

pre 0.162 review
author thomask
date Thu, 06 Jul 2006 16:04:11 +0000
parents 3c1400d94f60
children 4ad1807b13a3
files run/a/asm_movntpd_01_A.d run/a/asm_movntps_01_A.d run/a/asm_movshdup_01_A.d run/a/asm_movsldup_01_A.d run/a/asm_movss_01_A.d run/a/asm_movss_01_B.d run/a/asm_movss_01_C.d run/a/asm_movupd_01_A.d run/a/asm_movupd_01_B.d run/a/asm_movupd_01_C.d run/a/asm_movups_01_A.d run/a/asm_movups_01_B.d run/a/asm_movups_01_C.d run/a/asm_mulpd_01_B.d run/a/asm_mulps_01_B.d run/a/asm_mulsd_01_A.d run/a/asm_mulsd_01_B.d run/a/asm_mulss_01_A.d run/a/asm_mulss_01_B.d run/a/asm_pavgb_01_A.d run/a/asm_pavgb_01_B.d run/a/asm_pavgusb_01_A.d run/a/asm_pavgusb_01_B.d run/a/asm_pavgw_01_A.d run/a/asm_pf2id_01_A.d
diffstat 25 files changed, 382 insertions(+), 137 deletions(-) [+]
line wrap: on
line diff
--- a/run/a/asm_movntpd_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movntpd_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,7 +16,10 @@
 	int main(){
 		haveSSE2!()();
 
-		const double[2] a = [1.0, -1.0];
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = -1.0;
+
 		double[] b = aligned_new!(double)(2, 16);
 
 		asm{
@@ -25,7 +28,6 @@
 			sfence;
 		}
 
-		printf("%lf\n", b[0], b[1]);
 		if(a[0] != b[0]){
 			assert(0);
 		}
--- a/run/a/asm_movntps_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movntps_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,8 +16,13 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] a = [1.0f, -1.0f, 0.0f, 0.1f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = -1.0f;
+		a[2] = 0.0f;
+		a[3] = 0.1f;
+
+		float[] b = aligned_new!(float)(4, 16);
 
 		asm{
 			movups XMM0, a;
--- a/run/a/asm_movshdup_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movshdup_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -14,8 +14,13 @@
 	import addon.cpuinfo;
 
 	int main(){
-		const float[4] a = [1.0f, -1.0f, -2.0f, 2.0f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = -1.0f;
+		a[2] = -2.0f;
+		a[3] = 2.0f;
+
+		float[] b = new float[4];
 
 		asm{
 			movups XMM0, a;
--- a/run/a/asm_movsldup_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movsldup_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,25 +16,30 @@
 	int main(){
 		haveSSE3!()();
 
-		const float[4] A = [1.0, -1.0f, -2.0f, 2.0f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = -1.0f;
+		a[2] = -2.0f;
+		a[3] = 2.0f;
+		
+		float[] b = new float[4];
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			movsldup XMM1, XMM0;
 			movups b, XMM1;
 		}
 
-		if(A[0] != b[0]){
+		if(a[0] != b[0]){
 			assert(0);
 		}
-		if(A[0] != b[1]){
+		if(a[0] != b[1]){
 			assert(0);
 		}
-		if(A[2] != b[2]){
+		if(a[2] != b[2]){
 			assert(0);
 		}
-		if(A[2] != b[3]){
+		if(a[2] != b[3]){
 			assert(0);
 		}
 
--- a/run/a/asm_movss_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movss_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,17 +16,23 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		const float B = 9.0f;
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+		
+		float b = 9.0f;
+		
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movss XMM0, B;
+			movups XMM0, a;
+			movss XMM0, b;
 			movups c, XMM0;
 		}
 
-		if(c[0] != B){
+		if(c[0] != b){
 			assert(0);
 		}
 		if(c[1] != 0.0f){
--- a/run/a/asm_movss_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movss_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,27 +16,37 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		const float[4] B = [5.0f, 6.0f, 7.0f, 9.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+		
+		float[] b = new float[4];
+		b[0] = 5.0f;
+		b[1] = 6.0f;
+		b[2] = 7.0f;
+		b[3] = 9.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			movss XMM0, XMM1;
 			movups c, XMM0;
 		}
 
-		if(c[0] != B[0]){
+		if(c[0] != b[0]){
 			assert(0);
 		}
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
-		if(c[2] != A[2]){
+		if(c[2] != a[2]){
 			assert(0);
 		}
-		if(c[3] != A[3]){
+		if(c[3] != a[3]){
 			assert(0);
 		}
 
--- a/run/a/asm_movss_01_C.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movss_01_C.d	Thu Jul 06 16:04:11 2006 +0000
@@ -15,15 +15,20 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+
 		float b;
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			movss b, XMM0;
 		}
 
-		if(b != A[0]){
+		if(b != a[0]){
 			assert(0);
 		}
 
--- a/run/a/asm_movupd_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movupd_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,18 +16,21 @@
 	int main(){
 		haveSSE2!()();
 
-		const double[2] A = [1.0, 4.0];
-		double[2] b;
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 4.0;
+		
+		double[] b = new double[2];
 
 		asm{
-			movdqu XMM0, A;
+			movdqu XMM0, a;
 			movupd b, XMM0;
 		}
 
-		if(b[0] != A[0]){
+		if(b[0] != a[0]){
 			assert(0);
 		}
-		if(b[1] != A[1]){
+		if(b[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movupd_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movupd_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,19 +16,22 @@
 	int main(){
 		haveSSE2!()();
 
-		const double[2] A = [1.0, 4.0];
-		double[2] b;
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 4.0;
+		
+		double[] b = new double[2];
 
 		asm{
-			movdqu XMM0, A;
+			movdqu XMM0, a;
 			movupd XMM1, XMM0;
 			movdqu b, XMM1;
 		}
 
-		if(b[0] != A[0]){
+		if(b[0] != a[0]){
 			assert(0);
 		}
-		if(b[1] != A[1]){
+		if(b[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movupd_01_C.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movupd_01_C.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,18 +16,21 @@
 	int main(){
 		haveSSE2!()();
 
-		const double[2] A = [1.0, 4.0];
-		double[2] b;
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 4.0;
+		
+		double[] b = new double[2];
 
 		asm{
-			movupd XMM0, A;
+			movupd XMM0, a;
 			movdqu b, XMM0;
 		}
 
-		if(b[0] != A[0]){
+		if(b[0] != a[0]){
 			assert(0);
 		}
-		if(b[1] != A[1]){
+		if(b[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movups_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movups_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,8 +16,13 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+		
+		float[] b = new float[4];
 
 		asm{
 			movdqu XMM0, A;
--- a/run/a/asm_movups_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movups_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,25 +16,30 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+		
+		float[] b = new float[4];
 
 		asm{
-			movdqu XMM0, A;
+			movdqu XMM0, a;
 			movups XMM1, XMM0;
 			movdqu b, XMM1;
 		}
 
-		if(b[0] != A[0]){
+		if(b[0] != a[0]){
 			assert(0);
 		}
-		if(b[1] != A[1]){
+		if(b[1] != a[1]){
 			assert(0);
 		}
-		if(b[2] != A[2]){
+		if(b[2] != a[2]){
 			assert(0);
 		}
-		if(b[3] != A[3]){
+		if(b[3] != a[3]){
 			assert(0);
 		}
 
--- a/run/a/asm_movups_01_C.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_movups_01_C.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,24 +16,29 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+		
+		float[] b = new float[4];
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			movdqu b, XMM0;
 		}
 
-		if(b[0] != A[0]){
+		if(b[0] != a[0]){
 			assert(0);
 		}
-		if(b[1] != A[1]){
+		if(b[1] != a[1]){
 			assert(0);
 		}
-		if(b[2] != A[2]){
+		if(b[2] != a[2]){
 			assert(0);
 		}
-		if(b[3] != A[3]){
+		if(b[3] != a[3]){
 			assert(0);
 		}
 
--- a/run/a/asm_mulpd_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_mulpd_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		haveSSE2!()();
 
-		const double[2] A = [7.0, 4.0];
-		const double[2] B = [3.0, 2.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 7.0;
+		a[1] = 4.0;
+		
+		double[] b = new double[2];
+		b[0] = 3.0;
+		b[1] = 2.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			mulpd XMM0, XMM1;
 			movupd c, XMM0;
 		}
--- a/run/a/asm_mulps_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_mulps_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,13 +16,23 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [7.0f, 4.0f, 1.0f, -2.0f];
-		const float[4] B = [3.0f, 2.0f, 0.0f, 5.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 7.0f;
+		a[1] = 4.0f;
+		a[2] = 1.0f;
+		a[3] = -2.0f;
+		
+		float[] b = new float[4];
+		b[0] = 3.0f;
+		b[1] = 2.0f;
+		b[2] = 0.0f;
+		b[3] = 5.0f;
+		
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			mulps XMM0, XMM1;
 			movups c, XMM0;
 		}
--- a/run/a/asm_mulsd_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_mulsd_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		haveSSE2!()();
 
-		const double[2] A = [7.0, 4.0];
-		const double[2] B = [3.0, 2.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 7.0;
+		a[1] = 4.0;
+		
+		double[] b = new double[2];
+		b[0] = 3.0;
+		b[1] = 2.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			mulsd XMM0, XMM1;
 			movupd c, XMM0;
 		}
--- a/run/a/asm_mulsd_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_mulsd_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,13 +16,17 @@
 	int main(){
 		haveSSE2!()();
 
-		const double[2] A = [7.0, 4.0];
-		const double B = 2.0;
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 7.0;
+		a[1] = 4.0;
+		
+		double b = 2.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			mulsd XMM0, B;
+			movupd XMM0, a;
+			mulsd XMM0, b;
 			movupd c, XMM0;
 		}
 
--- a/run/a/asm_mulss_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_mulss_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,13 +16,23 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [7.0f, 4.0f, 1.0f, -2.0f];
-		const float[4] B = [3.0f, 2.0f, 0.0f, 5.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 7.0f;
+		a[1] = 4.0f;
+		a[2] = 1.0f;
+		a[3] = -2.0f;
+
+		float[] b = new float[4];
+		b[0] = 3.0f;
+		b[1] = 2.0f;
+		b[2] = 0.0f;
+		b[3] = 5.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			mulss XMM0, XMM1;
 			movups c, XMM0;
 		}
--- a/run/a/asm_mulss_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_mulss_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [7.0f, 4.0f, 1.0f, -2.0f];
-		const float B = 5.0f;
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 7.0f;
+		a[1] = 4.0f;
+		a[2] = 1.0f;
+		a[3] = -2.0f;
+		
+		float b = 5.0f;
+		
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			mulss XMM0, B;
+			movups XMM0, a;
+			mulss XMM0, b;
 			movups c, XMM0;
 		}
 
--- a/run/a/asm_pavgb_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_pavgb_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,21 +16,48 @@
 	int main(){
 		haveSSE!()();
 
-		const byte[8] A = [1, 2, 3, 4, 5, 6, 7, 8];
-		const byte[8] B = [5, 2, 1, 8, 15, 4, 1, 4];
-		const byte[8] C = [3, 2, 2, 6, 10, 5, 4, 6];
-		byte[8] d;
+		byte[] a = new byte[8];
+		a[0] = 1;
+		a[1] = 2;
+		a[2] = 3;
+		a[3] = 4;
+		a[4] = 5;
+		a[5] = 6;
+		a[6] = 7;
+		a[7] = 8;
+
+		byte[] b = new byte[8];
+		b[0] = 5;
+		b[1] = 2;
+		b[2] = 1;
+		b[3] = 8;
+		b[4] = 15;
+		b[5] = 4;
+		b[6] = 1;
+		b[7] = 4;
+
+		byte[] c = new byte[8];
+		c[0] = 3;
+		c[1] = 2;
+		c[2] = 2;
+		c[3] = 6;
+		c[4] = 10;
+		c[5] = 5;
+		c[6] = 4;
+		c[7] = 6;
+
+		byte[] d = new byte[8];
 
 		asm{
-			movq MM0, A;
-			movq MM1, B;
+			movq MM0, a;
+			movq MM1, b;
 			pavgb MM0, MM1;
 			movq d, MM0;
 			emms;
 		}
 
-		for(size_t i = 0; i < C.length; i++){
-			if(d[i] != C[i]){
+		for(size_t i = 0; i < c.length; i++){
+			if(d[i] != c[i]){
 				assert(0);
 			}
 		}
--- a/run/a/asm_pavgb_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_pavgb_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,20 +16,50 @@
 	int main(){
 		haveSSE!()();
 
-		const byte[16] A = [1, -2, 3, 4, 5, 6, 7, 8, -12];
-		const byte[16] B = [5, 2, -1, -8, 15, 4, 1, 4, -6];
-		const byte[16] C = [3, 0, 1, -2, 10, 5, 4, 6, -8];
-		byte[16] d;
+		byte[] a = new byte[16];
+		a[0] = 1;
+		a[1] = -2;
+		a[2] = 3;
+		a[3] = 4;
+		a[4] = 5;
+		a[5] = 6;
+		a[6] = 7;
+		a[7] = 8;
+		a[8] = -12;
+
+		byte[] b = new byte[16];
+		b[0] = 5;
+		b[1] = 2;
+		b[2] = -1;
+		b[3] = -8;
+		b[4] = 15;
+		b[5] = 4;
+		b[6] = 1;
+		b[7] = 4;
+		b[8] = -6;
+
+		byte[] c = new byte[16];
+		c[0] = 3;
+		c[1] = 0;
+		c[2] = 1;
+		c[3] = -2;
+		c[4] = 10;
+		c[5] = 5;
+		c[6] = 4;
+		c[7] = 6;
+		c[8] = -8;
+
+		byte[] d = new byte[16];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			pavgb XMM0, XMM1;
 			movdqu d, XMM0;
 		}
 
-		for(size_t i = 0; i < C.length; i++){
-			if(d[i] != C[i]){
+		for(size_t i = 0; i < c.length; i++){
+			if(d[i] != c[i]){
 				assert(0);
 			}
 		}
--- a/run/a/asm_pavgusb_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_pavgusb_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,20 +16,47 @@
 	int main(){
 		haveSSE!()();
 
-		const ubyte[8] A = [1, 2, 3, 4, 5, 6, 7, 8];
-		const ubyte[8] B = [5, 2, 1, 8, 15, 4, 1, 4];
-		const ubyte[8] C = [3, 2, 2, 6, 10, 5, 4, 6];
-		ubyte[8] d;
+		ubyte[] a = new ubyte[8];
+		a[0] = 1;
+		a[1] = 2;
+		a[2] = 3;
+		a[3] = 4;
+		a[4] = 5;
+		a[5] = 6;
+		a[6] = 7;
+		a[7] = 8;
+
+		ubyte[] b = new ubyte[8];
+		b[0] = 5;
+		b[1] = 2;
+		b[2] = 1;
+		b[3] = 8;
+		b[4] = 15;
+		b[5] = 4;
+		b[6] = 1;
+		b[7] = 4;
+
+		ubyte[] c = new ubyte[8];
+		c[0] = 3;
+		c[1] = 2;
+		c[2] = 2;
+		c[3] = 6;
+		c[4] = 10;
+		c[5] = 5;
+		c[6] = 4;
+		c[7] = 6;
+
+		ubyte[] d = new ubyte[8];
 
 		asm{
-			movq MM0, A;
-			pavgusb MM0, B;
+			movq MM0, a;
+			pavgusb MM0, b;
 			movq d, MM0;
 			emms;
 		}
 
-		for(size_t i = 0; i < C.length; i++){
-			if(d[i] != C[i]){
+		for(size_t i = 0; i < c.length; i++){
+			if(d[i] != c[i]){
 				assert(0);
 			}
 		}
--- a/run/a/asm_pavgusb_01_B.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_pavgusb_01_B.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,22 +16,49 @@
 	int main(){
 		have3DNow!()();
 
-		const ubyte[8] A = [1, 2, 3, 4, 5, 6, 7, 8];
-		const ubyte[8] B = [5, 2, 1, 8, 15, 4, 1, 4];
-		const ubyte[8] C = [3, 2, 2, 6, 10, 5, 4, 6];
-		ubyte[8] d;
+		ubyte[] a = new ubyte[8];
+		a[0] = 1;
+		a[1] = 2;
+		a[2] = 3;
+		a[3] = 4;
+		a[4] = 5;
+		a[5] = 6;
+		a[6] = 7;
+		a[7] = 8;
+
+		ubyte[] b = new ubyte[8];
+		b[0] = 5;
+		b[1] = 2;
+		b[2] = 1;
+		b[3] = 8;
+		b[4] = 15;
+		b[5] = 4;
+		b[6] = 1;
+		b[7] = 4;
+
+		ubyte[] c = new ubyte[8];
+		c[0] = 3;
+		c[1] = 2;
+		c[2] = 2;
+		c[3] = 6;
+		c[4] = 10;
+		c[5] = 5;
+		c[6] = 4;
+		c[7] = 6;
+
+		ubyte[] d = new ubyte[8];
 
 		asm{
 			emms;
-			movq MM0, A;
-			movq MM1, B
+			movq MM0, a;
+			movq MM1, b;
 			pavgusb MM0, MM1;
 			movq d, MM0;
 			emms;
 		}
 
-		for(size_t i = 0; i < C.length; i++){
-			if(d[i] != C[i]){
+		for(size_t i = 0; i < c.length; i++){
+			if(d[i] != c[i]){
 				assert(0);
 			}
 		}
--- a/run/a/asm_pavgw_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_pavgw_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,20 +16,47 @@
 	int main(){
 		haveSSE!()();
 
-		const short[8] A = [1, -2, 3, 4, 5, 6, 7, 8];
-		const short[8] B = [5, 2, -1, -8, 15, 4, 1, 4];
-		const short[8] C = [3, 0, 1, -2, 10, 5, 4, 6];
-		byte[8] d;
+		short[] a = new short[8];
+		a[0] = 1;
+		a[1] = -2;
+		a[2] = 3;
+		a[3] = 4;
+		a[4] = 5;
+		a[5] = 6;
+		a[6] = 7;
+		a[7] = 8;
+
+		short[] b = new short[8];
+		b[0] = 5;
+		b[1] = 2;
+		b[2] = -1;
+		b[3] = -8;
+		b[4] = 15;
+		b[5] = 4;
+		b[6] = 1;
+		b[7] = 4;
+
+		short[] c = new short[8];
+		c[0] = 3;
+		c[1] = 0;
+		c[2] = 1;
+		c[3] = -2;
+		c[4] = 10;
+		c[5] = 5;
+		c[6] = 4;
+		c[7] = 6;
+
+		byte[] d = new byte[8];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			pavgw XMM0, XMM1;
 			movdqu d, XMM0;
 		}
 
-		for(size_t i = 0; i < C.length; i++){
-			if(d[i] != C[i]){
+		for(size_t i = 0; i < c.length; i++){
+			if(d[i] != c[i]){
 				assert(0);
 			}
 		}
--- a/run/a/asm_pf2id_01_A.d	Tue Jul 04 17:04:51 2006 +0000
+++ b/run/a/asm_pf2id_01_A.d	Thu Jul 06 16:04:11 2006 +0000
@@ -16,19 +16,22 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [123.0f, -456.0f];
-		int[2] b;
+		float[] a = new float[2];
+		a[0] = 123.0f;
+		a[1] = -456.0f;
+		
+		int[] b = new int[2];
 
 		asm{
-			pf2id MM0, A;
+			pf2id MM0, a;
 			movq b, MM0;
 			emms;
 		}
 
-		if(b[0] != A[0]){
+		if(b[0] != a[0]){
 			assert(0);
 		}
-		if(b[1] != A[1]){
+		if(b[1] != a[1]){
 			assert(0);
 		}