# HG changeset patch # User thomask # Date 1148667217 0 # Node ID 26ae51190cc33e67b336893da747d335999ae997 # Parent 7ee2442b6bf4c77fb8e571a89cef4ae7e4996ed8 partial dmd-0.158 review diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_comisd_01_A.d --- a/run/a/asm_comisd_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_comisd_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -12,17 +12,18 @@ int main(){ version(runTest){ - const double[2] A = [1.0, 2.0]; - const double[2] B = [1.0, 3.0]; + const double[2] A = [1.0, 3.0]; + const double[2] B = [4.0, 3.0]; asm{ movupd XMM0, A; movupd XMM1, B; comisd XMM0, XMM1; - jg error; - je error; - jnl error; + jz error; + jp error; + jnc error; } + return 0; error: diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_comisd_01_B.d --- a/run/a/asm_comisd_01_B.d Wed May 24 16:24:27 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ - // $HeadURL$ - // $Date$ - // $Author$ - -module dstress.run.a.asm_comisd_01_B; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -int main(){ - version(runTest){ - const double[2] A = [1.0, 2.0]; - const double B = 3.0; - - asm{ - movupd XMM0, A; - comisd XMM0, B; - jg error; - je error; - jnl error; - } - - return 0; - error: - assert(0); - }else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); - } -} diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_comiss_01_A.d --- a/run/a/asm_comiss_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_comiss_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -12,16 +12,16 @@ int main(){ version(runTest){ - const float[4] A = [10.0f, 20.0f, 19.0f, 2.0f]; - const float[4] B = [5.0f, 5.0f, 5.0f, 3.0f]; + const float[4] A = [0.0f, 1.0f, 3.0f, 5.0f]; + const float[4] B = [0.0f, 2.0f, 4.0f, 6.0f]; asm{ movups XMM0, A; movups XMM1, B; comiss XMM0, XMM1; - jg error; - je error; - jnl error; + jnz error; + jp error; + jc error; } return 0; diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_comiss_01_B.d --- a/run/a/asm_comiss_01_B.d Wed May 24 16:24:27 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ - // $HeadURL$ - // $Date$ - // $Author$ - -module dstress.run.a.asm_comiss_01_B; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -int main(){ - version(runTest){ - const float[4] A = [10.0f, 20.0f, 19.0f, 2.0f]; - const float B = 3.0f; - - asm{ - movups XMM0, A; - comiss XMM0, B; - jg error; - je error; - jnl error; - } - - return 0; - error: - assert(0); - }else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); - } -} diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_lddqu_01.d --- a/run/a/asm_lddqu_01.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_lddqu_01.d Fri May 26 18:13:37 2006 +0000 @@ -29,7 +29,7 @@ assert(0); } - for(size_t i = 0; i < A.lenght; i++){ + for(size_t i = 0; i < A.length; i++){ if(A[i] != b[i]){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_movlhps_01_A.d --- a/run/a/asm_movlhps_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_movlhps_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -27,19 +27,19 @@ movups c, XMM0; } - if(c[0] != B[2]){ + if(c[0] != A[0]){ assert(0); } - if(c[1] != B[3]){ + if(c[1] != A[1]){ assert(0); } - if(c[2] != A[2]){ + if(c[2] != B[0]){ assert(0); } - if(c[3] != A[3]){ + if(c[3] != B[1]){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_movmskps_01_A.d --- a/run/a/asm_movmskps_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_movmskps_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -26,7 +26,7 @@ mov b, EAX; } - if(b != 0x0000_0004){ + if(b != 0b1110){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_movntpd_01_A.d --- a/run/a/asm_movntpd_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_movntpd_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -17,13 +17,15 @@ haveSSE2!()(); const double[2] a = [1.0, -1.0]; - double[2] b; + double[] b = aligned_new!(double)(2, 16); asm{ movupd XMM0, a; movntpd b, XMM0; + sfence; } + printf("%lf\n", b[0], b[1]); if(a[0] != b[0]){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_movshdup_01_A.d --- a/run/a/asm_movshdup_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_movshdup_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -23,16 +23,16 @@ movups b, XMM1; } - if(a[0] != b[0]){ + if(a[1] != b[0]){ assert(0); } - if(a[0] != b[1]){ + if(a[1] != b[1]){ assert(0); } - if(a[2] != b[2]){ + if(a[3] != b[2]){ assert(0); } - if(a[2] != b[3]){ + if(a[3] != b[3]){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_movsldup_01_A.d --- a/run/a/asm_movsldup_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_movsldup_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -17,7 +17,7 @@ haveSSE3!()(); const float[4] A = [1.0, -1.0f, -2.0f, 2.0f]; - double[4] b; + float[4] b; asm{ movups XMM0, A; @@ -25,16 +25,16 @@ movups b, XMM1; } - if(A[1] != b[0]){ + if(A[0] != b[0]){ assert(0); } - if(A[1] != b[1]){ + if(A[0] != b[1]){ assert(0); } - if(A[3] != b[2]){ + if(A[2] != b[2]){ assert(0); } - if(A[3] != b[3]){ + if(A[2] != b[3]){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_movss_01_B.d --- a/run/a/asm_movss_01_B.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_movss_01_B.d Fri May 26 18:13:37 2006 +0000 @@ -27,7 +27,7 @@ movups c, XMM0; } - if(c[0] != A[0]){ + if(c[0] != B[0]){ assert(0); } if(c[1] != A[1]){ @@ -36,7 +36,7 @@ if(c[2] != A[2]){ assert(0); } - if(c[3] != B[3]){ + if(c[3] != A[3]){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_mulpd_01_A.d --- a/run/a/asm_mulpd_01_A.d Wed May 24 16:24:27 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_mulpd_01_A; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveSSE2!()(); - - const double[2] A = [7.0, 4.0]; - const double[2] B = [3.0, 2.0]; - double[2] c; - - asm{ - movupd XMM0, A; - mulpd XMM0, B; - movupd c, XMM0; - } - - if(c[0] != 21.0){ - assert(0); - } - if(c[1] != 8.0){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_mulps_01_A.d --- a/run/a/asm_mulps_01_A.d Wed May 24 16:24:27 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_mulps_01_A; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - 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; - - asm{ - movups XMM0, A; - mulps XMM0, B; - movups c, XMM0; - } - - if(c[0] != 21.0f){ - assert(0); - } - if(c[1] != 8.0f){ - assert(0); - } - if(c[2] != 0.0f){ - assert(0); - } - if(c[3] != -10.0f){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_mulsd_01_A.d --- a/run/a/asm_mulsd_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_mulsd_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -27,10 +27,10 @@ movupd c, XMM0; } - if(c[0] != 7.0){ + if(c[0] != 21.0){ assert(0); } - if(c[1] != 8.0){ + if(c[1] != 4.0){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_mulsd_01_B.d --- a/run/a/asm_mulsd_01_B.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_mulsd_01_B.d Fri May 26 18:13:37 2006 +0000 @@ -26,10 +26,10 @@ movupd c, XMM0; } - if(c[0] != 7.0){ + if(c[0] != 14.0){ assert(0); } - if(c[1] != 8.0){ + if(c[1] != 4.0){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_mulss_01_A.d --- a/run/a/asm_mulss_01_A.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_mulss_01_A.d Fri May 26 18:13:37 2006 +0000 @@ -27,7 +27,7 @@ movups c, XMM0; } - if(c[0] != 7.0f){ + if(c[0] != 21.0f){ assert(0); } if(c[1] != 4.0f){ @@ -36,7 +36,7 @@ if(c[2] != 1.0f){ assert(0); } - if(c[3] != -10.0f){ + if(c[3] != -2.0f){ assert(0); } diff -r 7ee2442b6bf4 -r 26ae51190cc3 run/a/asm_mulss_01_B.d --- a/run/a/asm_mulss_01_B.d Wed May 24 16:24:27 2006 +0000 +++ b/run/a/asm_mulss_01_B.d Fri May 26 18:13:37 2006 +0000 @@ -26,7 +26,7 @@ movups c, XMM0; } - if(c[0] != 7.0f){ + if(c[0] != 35.0f){ assert(0); } if(c[1] != 4.0f){ @@ -35,7 +35,7 @@ if(c[2] != 1.0f){ assert(0); } - if(c[3] != -10.0f){ + if(c[3] != -2.0f){ assert(0); }