Mercurial > projects > dstress
changeset 1085:98f634622849
-fPIC fixes
line wrap: on
line diff
--- a/run/a/asm_addpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_addpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -29,7 +29,6 @@ movupd XMM1, b; addpd XMM0, XMM1; movupd b, XMM0; - emms; } b[0] -= 1.1242;
--- a/run/a/asm_addps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_addps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -33,7 +33,6 @@ movups XMM1, b; addps XMM0, XMM1; movups b, XMM0; - emms; } b[0] -= 5.0f;
--- a/run/a/asm_addsd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_addsd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -29,7 +29,6 @@ movupd XMM1, b; addsd XMM0, XMM1; movupd b, XMM0; - emms; } b[0] -= 5.0;
--- a/run/a/asm_addss_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_addss_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -33,7 +33,6 @@ movups XMM1, b; addss XMM0, XMM1; movups b, XMM0; - emms; } b[0] -= 5.0f;
--- a/run/a/asm_addsubpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_addsubpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -29,7 +29,6 @@ movupd XMM1, b; addsubpd XMM0, XMM1; movupd b, XMM0; - emms; } b[0] += 3.0;
--- a/run/a/asm_cmpiss_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_cmpiss_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -30,7 +30,6 @@ movdqu XMM0, a; movdqu XMM1, b; comiss XMM0, XMM1; - emms; mov EAX, 0; jnc done_1; jz done_1;
--- a/run/a/asm_cmpsd_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_cmpsd_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -29,7 +29,6 @@ cmpsd XMM0, b, 0; movdqu c, XMM0; movupd d, XMM0; - emms; } if(c[0] != ulong.max){
--- a/run/a/asm_cvtdq2pd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_cvtdq2pd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -28,7 +28,6 @@ movdqu XMM0, a; cvtdq2pd XMM1, XMM0; movdqu b, XMM1; - emms; } if(b[0] != 0){
--- a/run/a/asm_cvtdq2ps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_cvtdq2ps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -28,7 +28,6 @@ movdqu XMM0, a; cvtdq2ps XMM1, XMM0; movdqu b, XMM1; - emms; } if(b[0] != 0.0f){
--- a/run/a/asm_cvtpd2dq_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_cvtpd2dq_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -26,7 +26,6 @@ movdqu XMM0, a; cvtpd2dq XMM1, XMM0; movdqu b, XMM1; - emms; } if(b[0] != -2){
--- a/run/a/asm_divsd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_divsd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -29,7 +29,6 @@ movupd XMM1, b; divsd XMM0, XMM1; movupd c, XMM0; - emms; } c[0] += 8.0f;
--- a/run/a/asm_emms_01.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_emms_01.d Fri Jul 14 23:04:11 2006 +0000 @@ -10,14 +10,18 @@ version = runTest; } -int main(){ - version(runTest){ +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveMMX!()(); + asm{ emms; } return 0; - }else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_haddps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_haddps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -35,7 +35,6 @@ movups XMM1, b; haddps XMM0, XMM1; movups c, XMM0; - emms; } c[0] -= 13.3f;
--- a/run/a/asm_hsubpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_hsubpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -31,7 +31,6 @@ movupd XMM1, b; hsubpd XMM0, XMM1; movupd c, XMM0; - emms; } c[0] += 1.0;
--- a/run/a/asm_hsubps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_hsubps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -35,7 +35,6 @@ movups XMM1, b; hsubps XMM0, XMM1; movups c, XMM0; - emms; } c[0] += 1.0f;
--- a/run/a/asm_maxpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_maxpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -31,7 +31,6 @@ movupd XMM1, b; maxpd XMM0, XMM1; movupd c, XMM0; - emms; } if(c[0] != 2.0){
--- a/run/a/asm_maxps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_maxps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -35,7 +35,6 @@ movups XMM1, b; maxps XMM0, XMM1; movups c, XMM0; - emms; } if(c[0] != 2.0f){
--- a/run/a/asm_maxsd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_maxsd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -31,7 +31,6 @@ movupd XMM1, b; maxsd XMM0, XMM1; movupd c, XMM0; - emms; } if(c[0] != 2.0){
--- a/run/a/asm_maxss_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_maxss_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -35,7 +35,6 @@ movups XMM1, b; maxss XMM0, XMM1; movups c, XMM0; - emms; } if(c[0] != 2.0f){
--- a/run/a/asm_minpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_minpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -31,7 +31,6 @@ movupd XMM1, b; minpd XMM0, XMM1; movupd c, XMM0; - emms; } if(c[0] != 1.0){
--- a/run/a/asm_minps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_minps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -35,7 +35,6 @@ movups XMM1, b; minps XMM0, XMM1; movups c, XMM0; - emms; } if(c[0] != 1.0f){
--- a/run/a/asm_minsd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_minsd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -31,7 +31,6 @@ movupd XMM1, b; minsd XMM0, XMM1; movupd c, XMM0; - emms; } if(c[0] != 1.0){
--- a/run/a/asm_minsd_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_minsd_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -27,7 +27,6 @@ movupd XMM0, a; minsd XMM0, b; movupd c, XMM0; - emms; } if(c[0] != 2.0){
--- a/run/a/asm_minss_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_minss_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -35,7 +35,6 @@ movups XMM1, b; minss XMM0, XMM1; movups c, XMM0; - emms; } if(c[0] != 1.0f){
--- a/run/a/asm_minss_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_minss_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -29,7 +29,6 @@ movups XMM0, a; minss XMM0, b; movups c, XMM0; - emms; } if(c[0] != 1.0f){
--- a/run/a/asm_movapd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movapd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -25,7 +25,6 @@ movdqu XMM0, a; movapd XMM1, XMM0; movdqu b, XMM1; - emms; } if(a[0] != b[0]){
--- a/run/a/asm_movaps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movaps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -28,7 +28,6 @@ movdqu XMM0, a; movaps XMM1, XMM0; movdqu b, XMM1; - emms; } if(a[0] != b[0]){
--- a/run/a/asm_movddup_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movddup_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -27,7 +27,6 @@ movupd XMM1, a; movddup XMM1, XMM0; movupd b, XMM1; - emms; } if(a[0] != b[0]){
--- a/run/a/asm_movddup_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movddup_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -27,7 +27,6 @@ movupd XMM0, a; movddup XMM0, c; movupd b, XMM0; - emms; } if(b[0] != 1.0){
--- a/run/a/asm_movhlps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movhlps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -39,7 +39,6 @@ movups XMM1, b; movlhps XMM0, XMM1; movups c, XMM0; - emms; } if(c[0] != a[0]){
--- a/run/a/asm_movhpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movhpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -27,7 +27,6 @@ movupd XMM0, a; movhpd XMM0, b; movupd c, XMM0; - emms; } if(c[0] != a[0]){
--- a/run/a/asm_movhpd_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movhpd_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -25,7 +25,6 @@ asm{ movupd XMM0, a; movhpd b, XMM0; - emms; } if(b != a[1]){
--- a/run/a/asm_movhps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movhps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -32,7 +32,6 @@ movups XMM0, a; movhps XMM0, b; movups c, XMM0; - emms; } if(c[0] != a[0]){
--- a/run/a/asm_movhps_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movhps_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -26,7 +26,6 @@ asm{ movups XMM0, a; movhps b, XMM0; - emms; } if(b[0] != a[2]){
--- a/run/a/asm_movlhps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movlhps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -35,7 +35,6 @@ movups XMM1, b; movlhps XMM0, XMM1; movups c, XMM0; - emms; } if(c[0] != a[0]){
--- a/run/a/asm_movlpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movlpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -28,7 +28,6 @@ movups XMM0, a; movlpd XMM0, b; movups c, XMM0; - emms; } if(c[0] != b){
--- a/run/a/asm_movlpd_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movlpd_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -25,7 +25,6 @@ asm{ movups XMM0, a; movlpd b, XMM0; - emms; } if(b != a[0]){
--- a/run/a/asm_movlps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movlps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -32,7 +32,6 @@ movups XMM0, a; movlps XMM0, b; movups c, XMM0; - emms; } if(c[0] != b[0]){
--- a/run/a/asm_movlps_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movlps_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -27,7 +27,6 @@ asm{ movups XMM0, a; movlps b, XMM0; - emms; } if(b[0] != a[0]){
--- a/run/a/asm_movq2dq_01.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movq2dq_01.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,28 +16,29 @@ int main(){ haveSSE!()(); - static ulong[2] X = [0x0011_2233_4455_6677_8899LU, 0x1234_5678_90AB_CDEF]; - ulong[2] y = X.dup; + ulong[] x = new ulong[2]; + x[0] = 0x0011_2233_4455_6677_8899LU; + x[1] = 0x1234_5678_90AB_CDEF; - static ulong A = 0x1234_ABCD_5678_EF01; - ulong a = A; + ulong a = 0x1234_ABCD_5678_EF01; asm{ - movdqu XMM0, X; + movdqu XMM0, x; movq MM0, a; movq2dq XMM0, MM0; - movdqu y, XMM0; + movdqu x, XMM0; + emms; } - if(a != A){ + if(a != 0x1234_ABCD_5678_EF01){ assert(0); } - if(y[0] != A){ + if(x[0] != 0x1234_ABCD_5678_EF01){ assert(0); } - if(y[1] != 0){ + if(x[1] != 0){ assert(0); }
--- a/run/a/asm_movq_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movq_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -27,7 +27,6 @@ movdqu XMM0, a; movq XMM0, c; movdqu b, XMM0; - emms; } if(b[0] != c){
--- a/run/a/asm_movsd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movsd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,15 +16,18 @@ int main(){ haveSSE2!()(); - static double[2] A = [1.0, 2.0]; + double[] a = new double[2]; + a[0] = 1.0; + a[1] = 2.0; + double b; asm{ - movupd XMM0, A; + movupd XMM0, a; movsd b, XMM0; } - if(b != A[0]){ + if(b != a[0]){ assert(0); }
--- a/run/a/asm_movsd_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movsd_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,9 +16,12 @@ int main(){ haveSSE2!()(); - static double[2] A = [1.0, 2.0]; + double[] a = new double[2]; + a[0] = 1.0; + a[1] = 2.0; + double b = 3.0; - double[2] c; + double[] c = new double[2]; asm{ movupd XMM0, A;
--- a/run/a/asm_movsd_01_C.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_movsd_01_C.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,21 +16,27 @@ int main(){ haveSSE2!()(); - static double[2] A = [1.0, 2.0]; - static double[2] B = [3.0, 4.0]; - double[2] c; + double[] a = new double[2]; + a[0] = 1.0; + a[1] = 2.0; + + double[] b = new double[2]; + b[0] = 3.0; + b[1] = 4.0; + + double[] c = new double[2]; asm{ - movupd XMM0, A; - movupd XMM1, B; + movupd XMM0, a; + movupd XMM1, b; movsd XMM0, XMM1; movupd 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); }
--- a/run/a/asm_orpd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_orpd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,19 @@ int main(){ haveSSE2!()(); - static double[2] A = [4.0, 8.0]; - static double[2] B = [3.0, 4.0]; - double[2] c; + double[] a = new double[2]; + a[0] = 4.0; + a[1] = 8.0; + + double[] b = new double[2]; + b[0] = 3.0; + b[1] = 4.0; + + double[] c = new double[2]; asm{ - movupd XMM0, A; - movupd XMM1, B; + movupd XMM0, a; + movupd XMM1, b; orpd XMM0, XMM1; movupd c, XMM0; }
--- a/run/a/asm_orps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_orps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,23 @@ int main(){ haveSSE!()(); - static float[4] A = [5.0f, 10.0f, 1.0f, 17.0f]; - static float[4] B = [6.0f, 9.0f, -2.0f, 20.0f]; - float[4] c; + float[] a = new float[4]; + a[0] = 5.0f; + a[1] = 10.0f; + a[2] = 1.0f; + a[3] = 17.0f; + + float[] b = new float[4]; + b[0] = 6.0f; + b[1] = 9.0f; + b[2] = -2.0f; + b[3] = 20.0f; + + float[] c = new float[4]; asm{ - movups XMM0, A; - movups XMM1, B; + movups XMM0, a; + movups XMM1, b; orpd XMM0, XMM1; movups c, XMM0; }
--- a/run/a/asm_packssdw_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_packssdw_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -17,13 +17,23 @@ haveSSE2!()(); haveMMX!()(); - static int[4] A = [1, -2, 3, -4]; - static int[4] B = [5, -6, 7, -8]; - short[8] c; + int[] a = new int[4]; + a[0] = 1; + a[1] = -2; + a[2] = 3; + a[3] = -4; + + int[] b = new int[4]; + b[0] = 5; + b[1] = -6; + b[2] = 7; + b[3] = -8; + + short[] c = new short[8]; asm{ - movdqu XMM0, A; - movdqu XMM1, B; + movdqu XMM0, a; + movdqu XMM1, b; packssdw XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_paddb_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_paddb_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,46 @@ int main(){ haveSSE2!()(); - static byte[16] A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; - static byte[16] B = [-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]; - byte[16] c; + 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] = 9; + a[9] = 10; + a[10] = 11; + a[11] = 12; + a[12] = 13; + a[14] = 15; + a[15] = 16; + + byte[] b = new byte[16]; + b[0] = -8; + b[1] = -7; + b[2] = -6; + b[3] = -5; + b[4] = -4; + b[5] = -3; + b[6] = -2; + b[7] = -1; + b[8] = 0; + b[9] = 1; + b[10] = 2; + b[11] = 3; + b[12] = 4; + b[13] = 5; + b[14] = 6; + b[15] = 7; + + byte[] c = new byte[16]; asm{ - movdqu XMM0, A; - movdqu XMM1, B; + movdqu XMM0, a; + movdqu XMM1, b; paddb XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_paddd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_paddd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,23 @@ int main(){ haveSSE2!()(); - static int[4] A = [1, 2, 3, 4]; - static int[4] B = [int.max-2, int.min, 0, -6]; - int[4] c; + int[] a = new int[4]; + a[0] = 1; + a[1] = 2; + a[2] = 3; + a[3] = 4; + + int[] b = new int[4]; + b[0] = int.max-2; + b[1] = int.min; + b[2] = 0; + b[3] = -6; + + int[] c = new int[4]; asm{ - movdqu XMM0, A; - movdqu XMM1, B; + movdqu XMM0, a; + movdqu XMM1, b; paddd XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_paddq_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_paddq_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,19 @@ int main(){ haveSSE2!()(); - static long[2] A = [-1, -2]; - static long[2] B = [2, long.max]; - long[2] c; + long[] a = new long[2]; + a[0] = -1; + a[1] = -2; + + long[] b = new long[2]; + b[0] = 2; + b[1] = long.max; + + long[] c = new long[2]; asm{ - movdqu XMM0, A; - movdqu XMM1, B; + movdqu XMM0, a; + movdqu XMM1, b; paddq XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_paddsb_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_paddsb_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,47 @@ int main(){ haveSSE2!()(); - static byte[16] A = [1, byte.min, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; - static byte[16] B = [byte.max, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]; - byte[16] c; + byte[] a = new byte[16]; + a[0] = 1; + a[1] = byte.min; + a[2] = 3; + a[3] = 4; + a[4] = 5; + a[5] = 6; + a[6] = 7; + a[7] = 8; + a[8] = 9; + a[9] = 10; + a[10] = 11; + a[11] = 12; + a[12] = 13; + a[13] = 14; + a[14] = 15; + a[15] = 16; + + byte[] b = new byte[16]; + b[0] = byte.max; + b[1] = -7; + b[2] = -6; + b[3] = -5; + b[4] = -4; + b[5] = -3; + b[6] = -2; + b[7] = -1; + b[8] = 0; + b[9] = 1; + b[10] = 2; + b[11] = 3; + b[12] = 4; + b[13] = 5; + b[14] = 6; + b[15] = 7; + + byte[] c = new byte[16]; asm{ - movdqu XMM0, A; - movdqu XMM1, B; + movdqu XMM0, a; + movdqu XMM1, b; paddsb XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_pf2id_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pf2id_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,20 +16,23 @@ 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{ - movq MM1, A; + movq MM1, a; pf2id MM0, MM1; 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); }
--- a/run/a/asm_pfacc_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pfacc_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -6,13 +6,19 @@ int main(){ version(D_InlineAsm_X86){ - const float[2] A = [123.0f, -456.0f]; - const float[2] B = [12.0f, 17.0f]; - float[2] c; + float[] a = new float[2]; + a[0] = 123.0f; + a[1] = -456.0f; + + float[] b = new float[2]; + b[0] = 12.0f; + b[1] = 17.0f; + + float[] c = new float[2]; asm{ - movq MM0, A; - pfacc MM0, B; + movq MM0, a; + pfacc MM0, b; movq c, MM0; emms; }
--- a/run/a/asm_pfacc_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pfacc_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -6,13 +6,19 @@ int main(){ version(D_InlineAsm_X86){ - const float[2] A = [123.0f, -456.0f]; - const float[2] B = [12.0f, 17.0f]; - float[2] c; + float[] a = new float[2]; + a[0] = 123.0f; + a[1] = -456.0f; + + float[] b = new float[2]; + b[0] = 12.0f; + b[1] = 17.0f; + + float[] c = new float[2]; asm{ - movq MM0, A; - movq MM1, B; + movq MM0, a; + movq MM1, b; pfacc MM0, MM1; movq c, MM0; emms;
--- a/run/a/asm_pfadd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pfadd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,19 @@ int main(){ have3DNow!()(); - const float[2] A = [123.0f, -456.0f]; - const float[2] B = [12.0f, 17.0f]; - float[2] c; + float[] a = new float[2]; + a[0] = 123.0f; + a[1] = -456.0f; + + float[] b = new float[2]; + b[0] = 12.0f; + b[1] = 17.0f; + + float[] c = new float[2]; asm{ - movq MM0, A; - pfadd MM0, B; + movq MM0, a; + pfadd MM0, b; movq c, MM0; emms; }
--- a/run/a/asm_pfadd_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pfadd_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,19 @@ int main(){ have3DNow!()(); - const float[2] A = [123.0f, -456.0f]; - const float[2] B = [12.0f, 17.0f]; - float[2] c; + float[] a = new float[2]; + a[0] = 123.0f; + a[1] = -456.0f; + + float[] b = new float[2]; + b[0] = 12.0f; + b[1] = 17.0f; + + float[] c = new float[2]; asm{ - movq MM0, A; - movq MM1, B; + movq MM0, a; + movq MM1, b; pfadd MM0, MM1; movq c, MM0; emms;
--- a/run/a/asm_pfcmpeq_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pfcmpeq_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -4,15 +4,31 @@ module dstress.run.a.asm_pfcmpeq_01_A; -int main(){ - version(D_InlineAsm_X86){ - const float[2] A = [123.0f, -456.0f]; - const float[2] B = [123.0f, 456.0f]; - uint[2] c; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveMMX!()(); + + float[] a = new float[2]; + a[0] = 123.0f; + a[1] = -456.0f; + + float[] b = new float[2]; + b[0] = 123.0f; + b[1] = 456.0f; + + uint[] c = new uint[2]; asm{ - movq MM0, A; - pfcmpeq MM0, B; + movq MM0, a; + pfcmpeq MM0, b; movq c, MM0; emms; } @@ -25,8 +41,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfmax_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pfmax_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,21 +16,27 @@ int main(){ have3DNow!()(); - const float[2] A = [-123.0f, 457.0f]; - const float[2] B = [123.0f, 456.0f]; - float[2] c; + float[] a = new float[2]; + a[0] = -123.0f; + a[1] = 457.0f; + + float[] b = new float[2]; + b[0] = 123.0f; + b[1] = 456.0f; + + float[] c = new float[2]; asm{ - movq MM0, A; - pfmax MM0, B; + movq MM0, a; + pfmax MM0, b; movq c, MM0; emms; } - if(c[0] != B[0]){ + if(c[0] != b[0]){ assert(0); } - if(c[1] != A[1]){ + if(c[1] != a[1]){ assert(0); }
--- a/run/a/asm_pfmax_01_B.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_pfmax_01_B.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,22 +16,28 @@ int main(){ have3DNow!()(); - const float[2] A = [-123.0f, 457.0f]; - const float[2] B = [123.0f, 456.0f]; - float[2] c; + float[] a = new float[2]; + a[0] = -123.0f; + a[1] = 457.0f; + + float[] b = new float[2]; + b[0] = 123.0f; + b[1] = 456.0f; + + float[] c = new float[2]; asm{ - movq MM0, A; - movq MM1, B; + movq MM0, a; + movq MM1, b; pfmax MM0, MM1; movq c, MM0; emms; } - if(c[0] != B[0]){ + if(c[0] != b[0]){ assert(0); } - if(c[1] != A[1]){ + if(c[1] != a[1]){ assert(0); }
--- a/run/a/asm_punpcklwd_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_punpcklwd_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,14 +16,31 @@ int main(){ haveSSE2!()(); - const short[8] A = [4, 5, 6, 7, 0, 1, 2, 3]; - const short[8] B = [-4, -5, -6, -7, 0, -1, -2, -3]; + short[] a = new short[8]; + a[0] = 4; + a[1] = 5; + a[2] = 6; + a[3] = 7; + a[4] = 0; + a[5] = 1; + a[6] = 2; + a[7] = 3; - short[8] c; + short[] b = new short[8]; + b[0] = -4; + b[1] = -5; + b[2] = -6; + b[3] = -7; + b[4] = 0; + b[5] = -1; + b[6] = -2; + b[7] = -3; + + short[] c = new short[8]; asm{ - movdqu XMM0, A; - movdqu XMM1, B; + movdqu XMM0, a; + movdqu XMM1, b; punpcklwd XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_rcpps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_rcpps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,11 +16,16 @@ int main(){ haveSSE2!()(); - const float[4] A = [1.0f, 2.0f, 0.5f, -4.0f]; - float[4] b; + float[] a = new float[4]; + a[0] = 1.0f; + a[1] = 2.0f; + a[2] = 0.5f; + a[3] = -4.0f; + + float[] b = new float[4]; asm{ - movups XMM0, A; + movups XMM0, a; rcpps XMM1, XMM0; movups b, XMM1; }
--- a/run/a/asm_rcpss_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_rcpss_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,23 @@ int main(){ haveSSE2!()(); - const float[4] A = [2.0f, 1.0f, 0.5f, -4.0f]; - const float[4] B = [5.0f, 6.0f, 7.0f, 8.0f]; - float[4] c; + float[] a = new float[4]; + a[0] = 2.0f; + a[1] = 1.0f; + a[2] = 0.5f; + a[3] = -4.0f; + + float[] b = new float[4]; + b[0] = 5.0f; + b[1] = 6.0f; + b[2] = 7.0f; + b[3] = 8.0f; + + float[] c = new float[4]; asm{ - movups XMM0, A; - movups XMM1, B; + movups XMM0, a; + movups XMM1, b; rcpss XMM1, XMM0; movups c, XMM1; } @@ -35,15 +45,15 @@ assert(0); } - if(c[1] != B[1]){ + if(c[1] != b[1]){ assert(0); } - if(c[2] != B[2]){ + if(c[2] != b[2]){ assert(0); } - if(c[3] != B[3]){ + if(c[3] != b[3]){ assert(0); }
--- a/run/a/asm_rsqrtps_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_rsqrtps_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,23 @@ int main(){ haveSSE!()(); - const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f]; - const float[4] B = [-1.0f, 1.0f, 4.0f, -4.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] = -1.0f; + b[1] = 1.0f; + b[2] = 4.0f; + b[3] = -4.0f; + + float[] c = new float[4]; asm{ - movups XMM0, A; - movups XMM1, B; + movups XMM0, a; + movups XMM1, b; rsqrtps XMM0, XMM1; movups c, XMM0; }
--- a/run/a/asm_rsqrtss_01_A.d Thu Jul 13 10:52:11 2006 +0000 +++ b/run/a/asm_rsqrtss_01_A.d Fri Jul 14 23:04:11 2006 +0000 @@ -16,13 +16,23 @@ int main(){ haveSSE!()(); - const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f]; - const float[4] B = [-1.0f, 1.0f, 4.0f, -4.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] = -1.0f; + b[1] = 1.0f; + b[2] = 4.0f; + b[3] = -4.0f; + + float[] c = new float[4]; asm{ - movups XMM0, A; - movups XMM1, B; + movups XMM0, a; + movups XMM1, b; rsqrtss XMM0, XMM1; movups c, XMM0; } @@ -35,13 +45,13 @@ 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); }