Mercurial > projects > dstress
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); }