Mercurial > projects > dstress
changeset 1018:1b6d9acddb76
fixed asm_pmovmskb test
author | thomask |
---|---|
date | Mon, 22 May 2006 20:17:12 +0000 |
parents | 26f680ab52cd |
children | d9dbc4d0698f |
files | run/a/asm_pmovmskb_01_A.d run/a/pmovmskb_01_A.d |
diffstat | 2 files changed, 27 insertions(+), 55 deletions(-) [+] |
line wrap: on
line diff
--- a/run/a/asm_pmovmskb_01_A.d Mon May 22 20:15:24 2006 +0000 +++ b/run/a/asm_pmovmskb_01_A.d Mon May 22 20:17:12 2006 +0000 @@ -4,25 +4,40 @@ module dstress.run.a.asm_pmovmskb_01_A; -int main(){ - version(D_InlineAsm_X86){ - static ushort[8] a = [0x8000, 0x0800, 0x0080, 0x0008, 0x0888, 0x7FFF, 0xFFFF, 0]; - uint i; - + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveSSE2!()(); + + const ubyte Y = 0b1000_0000; + const ubyte N = 0b0111_1111; + + const ubyte[16] A = [Y, N, Y, Y, N, N, Y, Y, Y, N, N, N, Y, N, N, Y]; + + int b; + asm{ - movdqu XMM0, a; - mov EAX, 0xFF12_34BC; + mov EAX, 0x1234_5678; + movdqu XMM0, A; pmovmskb EAX, XMM0; - mov i, EAX; + mov b, EAX; } - if(i != 0b0011_0101_0001_0010){ + if(b != 0b1011_0011_1000_1001){ assert(0); } 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/pmovmskb_01_A.d Mon May 22 20:15:24 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_pmovmskb_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 ubyte Y = 0b1000_0000; - const ubyte N = 0b0111_1111; - - const ubyte[16] A = [Y, N, Y, Y, N, N, Y, Y, Y, N, N, N, Y, N, N, Y]; - - int b; - - asm{ - mov EAX, 0x1234_5678; - movdqu XMM0, A; - pmovmskb EAX, XMM0; - mov b, EAX; - } - - if(b != 0b1011_0011_1000_1001){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: No inline ASM support"); - static assert(0); -}