Mercurial > projects > dstress
changeset 1042:f34b7d4a2db7
added DMD-0.160 results
line wrap: on
line diff
--- a/addon/cpuinfo.d Sun Jun 04 06:28:03 2006 +0000 +++ b/addon/cpuinfo.d Wed Jun 07 09:28:21 2006 +0000 @@ -28,6 +28,25 @@ const bool haveX86InlineAsm = false; } +template have3DNow(){ + void have3DNow(){ + uint a = 0; + + version(haveX86InlineAsm){ + asm{ + mov EAX, 0x8000_0001; + cpuid; + mov a, EDX; + } + }else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + } + + if(!((a >> 30) & 1)){ + throw new Exception("DSTRESS{XFAIL}: no 3DNow! support present"); + } + } +} template haveCMOV(){ void haveCMOV(){
--- a/log.d Sun Jun 04 06:28:03 2006 +0000 +++ b/log.d Wed Jun 07 09:28:21 2006 +0000 @@ -547,7 +547,7 @@ char[] name = toupper(cleanName); stream.writeLine("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>"); - stream.writeLine("<html xmlns='http://www.w3.org/1999/xhtml'>"); + stream.writeLine("<html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'>"); stream.writeLine("<head><title>DStress - Torture: "~name~"</title><link rel='stylesheet' type='text/css' href='formate.css' /><meta name='author' content='Thomas Kühne' /><meta name='date' content='" ~ dateString() ~ "' /></head>"); stream.writeLine("<body><center><h1>DStress - Torture: "~name~"</h1></center><center><small>by Thomas Kühne <thomas-at-kuehne.cn></small></center>"); @@ -789,15 +789,35 @@ versionHeader ~= "<th><a href='./" ~ cleanFileName(l.id) ~ ".html'>"~replace(name, "_", " ")~"</a></th>"; } versionHeader ~= "</tr>"; - stream.writeLine("\t"~versionHeader); } - stream.writeLine("\t<tr class='" ~ cast(char)('A'+Result.PASS)~"'><th>PASS</th>" ~ streamLine(stats[Result.PASS >> 2])~"</tr>"); - stream.writeLine("\t<tr class='" ~ cast(char)('A'+Result.XFAIL)~"'><th>XFAIL</th>" ~ streamLine(stats[Result.XFAIL >> 2])~"</tr>"); - stream.writeLine("\t<tr class='" ~ cast(char)('A'+Result.XPASS)~"'><th>XPASS</th>" ~ streamLine(stats[Result.XPASS >> 2])~"</tr>"); - stream.writeLine("\t<tr class='" ~ cast(char)('A'+Result.FAIL)~"'><th>FAIL</th>" ~ streamLine(stats[Result.FAIL >> 2])~"</tr>"); - stream.writeLine("\t<tr class='" ~ cast(char)('A'+Result.ERROR)~"'><th>ERROR</th>" ~ streamLine(stats[Result.ERROR >> 2])~"</tr>"); - stream.writeLine("\t<tr class='" ~ cast(char)('A'+Result.UNTESTED)~"'><th>untested</th>" ~ streamLine(stats[Result.UNTESTED >> 2])~"</tr>"); + stream.writeLine("\t<tr><td> </td>" + "<th class='" ~ cast(char)('A'+Result.PASS)~"'>PASS</th>" + "<th class='" ~ cast(char)('A'+Result.XFAIL)~"'>XFAIL</th>" + "<th class='" ~ cast(char)('A'+Result.XPASS)~"'>XPASS</th>" + "<th class='" ~ cast(char)('A'+Result.FAIL)~"'>FAIL</th>" + "<th class='" ~ cast(char)('A'+Result.ERROR)~"'>ERROR</th>" + "<th class='" ~ cast(char)('A'+Result.UNTESTED)~"'>UNTESTED</th></tr>"); + foreach(size_t j, Log l; log){ + char[] row ="\t<tr>"; + char[] name = l.id; + int i = rfind(name, "/"); + if(i > -1){ + name = name[i+1 .. $]; + } + i = rfind(name, ".log"); + if(i + ".log".length == name.length){ + name = name[0 .. i]; + } + row ~= "<th><a href='./" ~ cleanFileName(l.id) ~ ".html'>"~replace(name, "_", " ")~"</a></th>"; + row ~= "<td class='" ~ cast(char)('A'+Result.PASS)~"'>" ~ std.string.toString(stats[Result.PASS >> 2][j]) ~"</td>"; + row ~= "<td class='" ~ cast(char)('A'+Result.XFAIL)~"'>" ~ std.string.toString(stats[Result.XFAIL >> 2][j]) ~"</td>"; + row ~= "<td class='" ~ cast(char)('A'+Result.XPASS)~"'>" ~ std.string.toString(stats[Result.XPASS >> 2][j]) ~"</td>"; + row ~= "<td class='" ~ cast(char)('A'+Result.FAIL)~"'>" ~ std.string.toString(stats[Result.FAIL >> 2][j]) ~"</td>"; + row ~= "<td class='" ~ cast(char)('A'+Result.ERROR)~"'>" ~ std.string.toString(stats[Result.ERROR >> 2][j]) ~"</td>"; + row ~= "<td class='" ~ cast(char)('A'+Result.UNTESTED)~"'>" ~ std.string.toString(stats[Result.UNTESTED >> 2][j]) ~"</td>"; + stream.writeLine(row ~ "</tr>"); + } stream.writeLine("</table>"); stream.writeLine("<h2><a name='details' id='details'></a>Details</h2>");
--- a/run/a/asm_movdq2q_01.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movdq2q_01.d Wed Jun 07 09:28:21 2006 +0000 @@ -22,7 +22,7 @@ asm{ movupd XMM0, A; movdq2q MM0, XMM0; - movq b, XMM0; + movq b, MM0; } if(b != A[1]){
--- a/run/a/asm_movq_02_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_C.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_C.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_D.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_D.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_E.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_E.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_F.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_F.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_G.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_G.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_H.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_H.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_I.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_I.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_J.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_J.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,7 +26,7 @@ asm{ movq MM0, A; movq b, MM0; - finit; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_K.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_K.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,7 +26,7 @@ asm{ movq MM0, A; movq b, MM0; - finit; + emms; } for(size_t i = 0; i < A.length; i++){
--- a/run/a/asm_movq_02_O.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_movq_02_O.d Wed Jun 07 09:28:21 2006 +0000 @@ -26,6 +26,7 @@ asm{ movq MM0, A; movq b, MM0; + emms; } if(A != 0x12_34_56_78_9A_BC_DE_F0){
--- a/run/a/asm_packssdw_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_packssdw_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -15,6 +15,7 @@ int main(){ haveSSE2!()(); + haveMMX!()(); static int[4] A = [1, -2, 3, -4]; static int[4] B = [5, -6, 7, -8];
--- a/run/a/asm_pavgb_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pavgb_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -16,17 +16,17 @@ 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, 0, 1, -2, 10, 5, 4, 6]; + 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; asm{ - emms; movq MM0, A; movq MM1, B; pavgb MM0, MM1; movq d, MM0; + emms; } for(size_t i = 0; i < C.length; i++){
--- a/run/a/asm_pavgusb_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pavgusb_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -22,10 +22,10 @@ ubyte[8] d; asm{ - emms; movq MM0, A; pavgusb MM0, B; movq d, MM0; + emms; } for(size_t i = 0; i < C.length; i++){
--- a/run/a/asm_pavgusb_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pavgusb_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pavgusb_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + 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]; @@ -17,6 +27,7 @@ movq MM1, B pavgusb MM0, MM1; movq d, MM0; + emms; } for(size_t i = 0; i < C.length; i++){ @@ -26,8 +37,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pf2id_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pf2id_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,14 +4,25 @@ module dstress.run.a.asm_pf2id_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [123.0f, -456.0f]; int[2] b; asm{ pf2id MM0, A; movq b, MM0; + emms; } if(b[0] != A[0]){ @@ -22,8 +33,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pf2id_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pf2id_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pf2id_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [123.0f, -456.0f]; int[2] b; @@ -13,6 +23,7 @@ movq MM1, A; pf2id MM0, MM1; movq b, MM0; + emms; } if(b[0] != A[0]){ @@ -23,8 +34,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfacc_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfacc_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -14,6 +14,7 @@ movq MM0, A; pfacc MM0, B; movq c, MM0; + emms; } if(c[0] != -333.0f){
--- a/run/a/asm_pfacc_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfacc_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -15,6 +15,7 @@ movq MM1, B; pfacc MM0, MM1; movq c, MM0; + emms; } if(c[0] != -333.0f){
--- a/run/a/asm_pfadd_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfadd_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfadd_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [123.0f, -456.0f]; const float[2] B = [12.0f, 17.0f]; float[2] c; @@ -14,18 +24,19 @@ movq MM0, A; pfadd MM0, B; movq c, MM0; + emms; } if(c[0] != 135.0f){ assert(0); } - if(c[1] != -449.0f){ + if(c[1] != -439.0f){ assert(0); } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfadd_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfadd_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfadd_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [123.0f, -456.0f]; const float[2] B = [12.0f, 17.0f]; float[2] c; @@ -15,18 +25,19 @@ movq MM1, B; pfadd MM0, MM1; movq c, MM0; + emms; } if(c[0] != 135.0f){ assert(0); } - if(c[1] != -449.0f){ + if(c[1] != -439.0f){ assert(0); } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfcmpeq_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfcmpeq_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -14,6 +14,7 @@ movq MM0, A; pfcmpeq MM0, B; movq c, MM0; + emms; } if(c[0] != uint.max){
--- a/run/a/asm_pfcmpeq_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfcmpeq_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfcmpeq_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [123.0f, -456.0f]; const float[2] B = [123.0f, 456.0f]; uint[2] c; @@ -15,6 +25,7 @@ movq MM1, B pfcmpeq MM0, MM1; movq c, MM0; + emms; } if(c[0] != uint.max){ @@ -25,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfcmpge_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfcmpge_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfcmpge_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [123.0f, 457.0f]; const float[2] B = [124.0f, 456.0f]; uint[2] c; @@ -14,6 +24,7 @@ movq MM0, A; pfcmpge MM0, B; movq c, MM0; + emms; } if(c[0] != 0){ @@ -24,8 +35,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfcmpge_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfcmpge_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfcmpge_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [123.0f, 458.0f]; const float[2] B = [124.0f, 456.0f]; uint[2] c; @@ -15,6 +25,7 @@ movq MM1, B pfcmpge MM0, MM1; movq c, MM0; + emms; } if(c[0] != 0){ @@ -25,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfcmpgt_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfcmpgt_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,19 +4,31 @@ module dstress.run.a.asm_pfcmpgt_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveMMX!()(); + have3DNow!()(); + const float[2] A = [123.0f, 457.0f]; - const float[2] B = [123.0f, 456.0f]; + const float[2] B = [124.0f, 456.0f]; uint[2] c; asm{ movq MM0, A; pfcmpgt MM0, B; movq c, MM0; + emms; } - if(c[0] != 0xFFFF_FFFF){ + if(c[0] != 0){ assert(0); } if(c[1] != 0xFFFF_FFFF){ @@ -24,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfcmpgt_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfcmpgt_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,10 +4,21 @@ module dstress.run.a.asm_pfcmpgt_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveMMX!()(); + have3DNow!()(); + const float[2] A = [123.0f, 457.0f]; - const float[2] B = [123.0f, 456.0f]; + const float[2] B = [124.0f, 456.0f]; uint[2] c; asm{ @@ -15,9 +26,10 @@ movq MM1, B; pfcmpgt MM0, MM1; movq c, MM0; + emms; } - if(c[0] != 0xFFFF_FFFF){ + if(c[0] != 0){ assert(0); } if(c[1] != 0xFFFF_FFFF){ @@ -25,8 +37,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfmax_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfmax_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfmax_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [-123.0f, 457.0f]; const float[2] B = [123.0f, 456.0f]; float[2] c; @@ -14,6 +24,7 @@ movq MM0, A; pfmax MM0, B; movq c, MM0; + emms; } if(c[0] != B[0]){ @@ -24,8 +35,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfmax_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfmax_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfmax_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [-123.0f, 457.0f]; const float[2] B = [123.0f, 456.0f]; float[2] c; @@ -15,6 +25,7 @@ movq MM1, B; pfmax MM0, MM1; movq c, MM0; + emms; } if(c[0] != B[0]){ @@ -25,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfmin_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfmin_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfmin_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [-123.0f, 457.0f]; const float[2] B = [123.0f, 456.0f]; float[2] c; @@ -14,6 +24,7 @@ movq MM0, A; pfmin MM0, B; movq c, MM0; + emms; } if(c[0] != A[0]){ @@ -24,8 +35,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfmin_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfmin_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfmin_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [-123.0f, 457.0f]; const float[2] B = [123.0f, 456.0f]; float[2] c; @@ -15,6 +25,7 @@ movq MM1, B; pfmin MM0, MM1; movq c, MM0; + emms; } if(c[0] != A[0]){ @@ -25,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfmul_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfmul_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfmul_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [-3.0f, 7.0f]; const float[2] B = [2.0f, 8.0f]; float[2] c; @@ -14,6 +24,7 @@ movq MM0, A; pfmul MM0, B; movq c, MM0; + emms; } if(c[0] != -6.0f){ @@ -24,8 +35,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfmul_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfmul_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfmul_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [-3.0f, 7.0f]; const float[2] B = [2.0f, 8.0f]; float[2] c; @@ -15,6 +25,7 @@ movq MM1, B; pfmul MM0, MM1; movq c, MM0; + emms; } if(c[0] != -6.0f){ @@ -25,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfrcp_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrcp_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -6,14 +6,14 @@ int main(){ version(D_InlineAsm_X86){ - const float[2] A = [2.0f, -0.5f]; + const float[2] A = [2.0f, 3.3f]; float[2] c; asm{ pfrcp MM0, A; movq c, MM0; + emms; } - c[0] -= 0.5f; if(c[0] < 0.0f){ c[0] = -c[0]; @@ -22,7 +22,7 @@ assert(0); } - c[1] += 2.0f; + c[1] -= 0.5f; if(c[1] < 0.0f){ c[1] = -c[1]; }
--- a/run/a/asm_pfrcp_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrcp_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -6,13 +6,14 @@ int main(){ version(D_InlineAsm_X86){ - const float[2] A = [2.0f, -0.5f]; + const float[2] A = [2.0f, 3.3f]; float[2] c; asm{ movq MM1, A; pfrcp MM0, MM1; movq c, MM0; + emms; } c[0] -= 0.5f; @@ -23,7 +24,7 @@ assert(0); } - c[1] += 2.0f; + c[1] -= 0.5f; if(c[1] < 0.0f){ c[1] = -c[1]; }
--- a/run/a/asm_pfrcpit1_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrcpit1_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,19 @@ module dstress.run.a.asm_pfrcpit1_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveMMX!()(); + have3DNow!()(); + const float[2] A = [2.0f, -0.5f]; float[2] c; @@ -13,9 +24,11 @@ pfrcp MM0, A; pfrcpit1 MM0, A; movq c, MM0; + emms; } +printf("%f %f\n", c[0], c[1]); - c[0] -= 0.5f; + c[0] -= 1.007812f; if(c[0] < 0.0f){ c[0] = -c[0]; } @@ -23,7 +36,7 @@ assert(0); } - c[1] += 2.0f; + c[1] -= 1.007812; if(c[1] < 0.0f){ c[1] = -c[1]; } @@ -32,8 +45,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfrcpit1_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrcpit1_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,19 @@ module dstress.run.a.asm_pfrcpit1_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveMMX!()(); + have3DNow!()(); + const float[2] A = [2.0f, -0.5f]; float[2] c; @@ -14,9 +25,10 @@ pfrcp MM0, MM1; pfrcpit1 MM0, MM1; movq c, MM0; + emms; } - c[0] -= 0.5f; + c[0] -= 1.007812f; if(c[0] < 0.0f){ c[0] = -c[0]; } @@ -24,7 +36,7 @@ assert(0); } - c[1] += 2.0f; + c[1] += 1.007812f; if(c[0] < 0.0f){ c[0] = -c[0]; } @@ -33,8 +45,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfrcpit2_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrcpit2_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfrcpit2_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [2.0f, -0.5f]; float[2] c; @@ -14,9 +24,10 @@ pfrcpit1 MM0, A; pfrcpit2 MM0, A; movq c, MM0; + emms; } - c[0] -= 0.5f; + c[0] -= 2.000061f; if(c[0] < 0.0f){ c[0] = -c[0]; } @@ -24,7 +35,7 @@ assert(0); } - c[1] += 2.0f; + c[1] += 0.500015f; if(c[1] < 0.0f){ c[1] = -c[1]; } @@ -33,8 +44,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfrcpit2_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrcpit2_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfrcpit2_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [2.0f, -0.5f]; float[2] c; @@ -15,9 +25,10 @@ pfrcpit1 MM0, MM1; pfrcpit2 MM0, MM1; movq c, MM0; + emms; } - c[0] -= 0.5f; + c[0] -= 2.000061f; if(c[0] < 0.0f){ c[0] = -c[0]; } @@ -25,7 +36,7 @@ assert(0); } - c[1] += 2.0f; + c[1] += 0.500015f; if(c[1] < 0.0f){ c[1] = -c[1]; } @@ -34,8 +45,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfrsqrt_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrsqrt_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -6,27 +6,28 @@ int main(){ version(D_InlineAsm_X86){ - const float[2] A = [4.0f, 0.5f]; + const float[2] A = [4.0f, 3.3f]; float[2] b; asm{ pfrsqrt MM0, A; movq b, MM0; + emms; } - c[0] -= 0.5f; - if(c[0] < 0.0f){ - c[0] = -c[0]; + b[0] -= 0.5f; + if(b[0] < 0.0f){ + b[0] = -b[0]; } - if(c[0] > float.epsilon * (1 << 11)){ + if(b[0] > float.epsilon * (1 << 11)){ assert(0); } - c[1] -= 4.0f; - if(c[1] < 0.0f){ - c[1] = -c[1]; + b[1] -= 0.5f; + if(b[1] < 0.0f){ + b[1] = -b[1]; } - if(c[1] > float.epsilon * (1 << 11)){ + if(b[1] > float.epsilon * (1 << 11)){ assert(0); }
--- a/run/a/asm_pfrsqrt_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrsqrt_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfrsqrt_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [4.0f, 0.5f]; float[2] c; @@ -13,6 +23,7 @@ movq MM1, A; pfrsqrt MM0, MM1; movq c, MM0; + emms; } c[0] -= 0.5f; @@ -32,8 +43,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfrsqrtit1_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrsqrtit1_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfrsqrtit1_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [4.0f, 0.5f]; float[2] c; @@ -13,9 +23,9 @@ pfrsqrt MM0, A; pfrsqit1 MM0, A; movq c, MM0; + emms; } - - c[0] -= 0.5f; + c[0] -= 1.001953f; if(c[0] < 0.0f){ c[0] = -c[0]; } @@ -23,7 +33,7 @@ assert(0); } - c[1] -= 4.0f; + c[1] -= 1.001953f; if(c[1] < 0.0f){ c[1] = -c[1]; } @@ -32,8 +42,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfrsqrtit1_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfrsqrtit1_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfrsqrtit1_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [4.0f, 0.5f]; float[2] c; @@ -14,9 +24,10 @@ pfrsqrt MM0, MM1; pfrsqit1 MM0, MM1; movq c, MM0; + emms; } - c[0] -= 0.5f; + c[0] -= 1.001953f; if(c[0] < 0.0f){ c[0] = -c[0]; } @@ -24,7 +35,7 @@ assert(0); } - c[1] -= 4.0f; + c[1] -= 1.001953f; if(c[1] < 0.0f){ c[1] = -c[1]; } @@ -33,8 +44,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfsub_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfsub_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfsub_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [6.0f, 2.0f]; const float[2] B = [2.0f, -1.0f]; float[2] c; @@ -15,6 +25,7 @@ movq MM1, B; pfsub MM0, MM1; movq c, MM0; + emms; } if(c[0] != 4.0f){ @@ -26,8 +37,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfsub_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfsub_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfsub_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [6.0f, 2.0f]; const float[2] B = [2.0f, -1.0f]; float[2] c; @@ -14,6 +24,7 @@ movq MM0, A; pfsub MM0, B; movq c, MM0; + emms; } if(c[0] != 4.0f){ @@ -25,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfsubr_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfsubr_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfsubr_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [6.0f, 2.0f]; const float[2] B = [2.0f, -1.0f]; float[2] c; @@ -15,6 +25,7 @@ movq MM1, B; pfsubr MM0, MM1; movq c, MM0; + emms; } if(c[0] != -4.0f){ @@ -26,8 +37,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pfsubr_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pfsubr_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pfsubr_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const float[2] A = [6.0f, 2.0f]; const float[2] B = [2.0f, -1.0f]; float[2] c; @@ -14,6 +24,7 @@ movq MM0, A; pfsubr MM0, B; movq c, MM0; + emms; } if(c[0] != -4.0f){ @@ -25,8 +36,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pi2fd_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pi2fd_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_pi2fd_01_A; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const int[2] A = [6, 2]; float[2] b; @@ -13,6 +23,7 @@ movq MM1, A; pi2fd MM0, MM1; movq b, MM0; + emms; } if(b[0] != 6.0f){ @@ -24,8 +35,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pi2fd_01_B.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pi2fd_01_B.d Wed Jun 07 09:28:21 2006 +0000 @@ -4,14 +4,25 @@ module dstress.run.a.asm_pi2fd_01_B; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + have3DNow!()(); + const int[2] A = [6, 2]; float[2] b; asm{ pi2fd MM0, A; movq b, MM0; + emms; } if(b[0] != 6.0f){ @@ -23,8 +34,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_pmulhuw_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pmulhuw_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -24,7 +24,7 @@ asm{ movdqu XMM0, A; movdqu XMM1, B; - pmulhuw, XMM0, XMM1; + pmulhuw XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_pmulhw_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pmulhw_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -17,14 +17,14 @@ haveSSE2!()(); const short[8] A = [-1, 2, 0x7FFF, 7, 0x7FF0, 0x7EDC, 3, -16]; - const short[8] B = [2, 0, 7, 0x7FFF, 0x00FF, 0x7EDC, 5, 0xABCD]; + const short[8] B = [2, 0, 7, 0x7FFF, 0x00FF, 0x7EDC, 5, 0x6BCD]; ushort[8] c; asm{ movdqu XMM0, A; movdqu XMM1, B; - pmulhw, XMM0, XMM1; + pmulhw XMM0, XMM1; movdqu c, XMM0; } @@ -49,7 +49,7 @@ if(c[6] != 0){ assert(0); } - if(c[7] != 0xFFF5){ + if(c[7] != 0xFFF9){ assert(0); }
--- a/run/a/asm_pmullw_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pmullw_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -24,7 +24,7 @@ asm{ movdqu XMM0, A; movdqu XMM1, B; - pmullw, XMM0, XMM1; + pmullw XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_pmuludq_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pmuludq_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -24,7 +24,7 @@ asm{ movdqu XMM0, A; movdqu XMM1, B; - pmuludq, XMM0, XMM1; + pmuludq XMM0, XMM1; movdqu c, XMM0; }
--- a/run/a/asm_pslldq_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_pslldq_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -9,7 +9,7 @@ }else version(D_InlineAsm_X86_64){ version = runTest; } - +import std.stdio; version(runTest){ import addon.cpuinfo; @@ -17,20 +17,18 @@ haveSSE2!()(); const ulong[2] A = [(1 << 63) | 1, (1 << 63) | 3]; - const long[2] B = [8, 1]; ulong[2] c; asm{ movdqu XMM0, A; - movdqu XMM1, B; - pslldq XMM0, XMM1; + pslldq XMM0, 1; movdqu c, XMM0; } - if(c[0] != 3){ + if(c[0] != 0x100){ assert(0); } - if(c[1] != 6){ + if(c[1] != 0x300){ assert(0); }
--- a/run/a/asm_psrldq_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_psrldq_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -16,21 +16,19 @@ int main(){ haveSSE2!()(); - const ulong[2] A = [(1 << 63) | 1, (1 << 63) | 3]; - const long[2] B = [8, 1]; + const ulong[2] A = [0x1234_5678_90AB_CDEF, 0x0102_0304_0506_0708]; ulong[2] c; asm{ movdqu XMM0, A; - movdqu XMM1, B; - psrldq XMM0, XMM1; + psrldq XMM0, 1; movdqu c, XMM0; } - if(c[0] != (1 << 62)){ + if(c[0] != 0x0012_3456_7890_ABCD){ assert(0); } - if(c[1] != (3 << 62) | 1){ + if(c[1] != 0x0001_0203_0405_0607){ assert(0); }
--- a/run/a/asm_psubusb_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_psubusb_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -28,7 +28,7 @@ movdqu c, XMM0; } - foreach(byte x; c[0 .. c.length -1]){ + foreach(ubyte x; c[0 .. c.length -1]){ if(x != 1){ assert(0); } @@ -37,6 +37,8 @@ if(c[c.length - 1] != 0){ assert(0); } + + return 0; } }else{ pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
--- a/run/a/asm_psubusw_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_psubusw_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -28,7 +28,7 @@ movdqu c, XMM0; } - foreach(short x; c[0 .. c.length -1]){ + foreach(ushort x; c[0 .. c.length -1]){ if(x != 1){ assert(0); } @@ -37,6 +37,8 @@ if(c[c.length - 1] != 0){ assert(0); } + + return 0; } }else{ pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
--- a/run/a/asm_punpcklwd_01_A.d Sun Jun 04 06:28:03 2006 +0000 +++ b/run/a/asm_punpcklwd_01_A.d Wed Jun 07 09:28:21 2006 +0000 @@ -16,7 +16,7 @@ int main(){ haveSSE2!()(); - const short[8] A = [4, 5, 6, 7, 0, 1, 2, 3, 4]; + 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[8] c; @@ -28,28 +28,28 @@ movdqu c, XMM0; } - if(c[0] != 0){ + if(c[0] != 4){ assert(0); } - if(c[1] != 0){ + if(c[1] != -4){ assert(0); } - if(c[2] != -1){ + if(c[2] != 5){ assert(0); } - if(c[3] != 1){ + if(c[3] != -5){ assert(0); } - if(c[4] != -2){ + if(c[4] != 6){ assert(0); } - if(c[5] != 2){ + if(c[5] != -6){ assert(0); } - if(c[6] != -3){ + if(c[6] != 7){ assert(0); } - if(c[7] != 3){ + if(c[7] != -7){ assert(0); }