# HG changeset patch # User Christian Kamm # Date 1239623223 -7200 # Node ID ebff718ff18b589351896b1dfa080f86d7a0dd52 # Parent 392a442e2d64c8d052d12c48c0fe52981a57646f Fix tests from #3. Thanks Don! diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdiv_01_D.d --- a/run/a/asm_fdiv_01_D.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fdiv_01_D; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - float a = -3.0f; - float b = 12.0f; - float c; - - asm{ - fld a; - fld b; - fdiv ST(1),ST; - fstp c; - fstp c; - } - - if(c != -4.0f){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdiv_01_D2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fdiv_01_D2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,51 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fdiv_01_D2; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = -3.0f; + float b = 12.0f; + float c; + + asm{ + fld a; + fld b; + fdiv ST,ST(1); + fstp c; + } + + if(c != -4.0f){ + assert(0); + } + + asm{ + fld a; + fld b; + fdiv ST(1),ST; + fstp c; + fstp c; + } + + if(c != a/b){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivp_01_A.d --- a/run/a/asm_fdivp_01_A.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fdivp_01_A; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - float a = -3.0f; - float b = 12.0f; - - asm{ - fld a; - fldz; - fld b; - fdivp ST(2),ST; - fstp a; - fstp b; - } - - if(a != 0.0f){ - assert(0); - } - if(b != -4.0f){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivp_01_A2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fdivp_01_A2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fdivp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 12.0f; + float b = -3.0f; + + asm{ + fld a; + fldz; + fld b; + fdivp ST(2),ST; + fstp a; + fstp b; + } + + if(a != 0.0f){ + assert(0); + } + if(b != -4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivp_01_B.d --- a/run/a/asm_fdivp_01_B.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fdivp_01_B; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - float a = -3.0f; - float b = 12.0f; - - asm{ - fldz; - fld a; - fld b; - fdivp; - fstp a; - fstp b; - } - - if(a != -4.0f){ - assert(0); - } - if(b != 0.0f){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivp_01_B2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fdivp_01_B2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fdivp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 12.0f; + float b = -3.0f; + + asm{ + fldz; + fld a; + fld b; + fdivp; + fstp a; + fstp b; + } + + if(a != -4.0f){ + assert(0); + } + if(b != 0.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivr_01_D.d --- a/run/a/asm_fdivr_01_D.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fdivr_01_D; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - float a = -3.0f; - float b = 12.0f; - float c = 9.9f; - - asm{ - fld b; - fldz; - fld a; - fdivr ST(2),ST; - fstp a; - fstp b; - fstp c; - } - - if(a != -3.0f){ - assert(0); - } - if(b != 0.0f){ - assert(0); - } - if(c != -4.0f){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivr_01_D2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fdivr_01_D2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,48 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fdivr_01_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 12.0f; + float b = -3.0f; + float c = 9.9f; + + asm{ + fld b; + fldz; + fld a; + fdivr ST(2),ST; + fstp a; + fstp b; + fstp c; + } + + if(a != 12.0f){ + assert(0); + } + if(b != 0.0f){ + assert(0); + } + if(c != -4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivrp_01_A.d --- a/run/a/asm_fdivrp_01_A.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fdivrp_01_A; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - float a = -3.0f; - float b = 12.0f; - - asm{ - fld b; - fldz; - fld a; - fdivrp ST(2),ST; - fstp a; - fstp b; - } - - if(a != 0.0f){ - assert(0); - } - if(b != -4.0f){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivrp_01_A2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fdivrp_01_A2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fdivrp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 12.0f; + float b = -3.0f; + + asm{ + fld b; + fldz; + fld a; + fdivrp ST(2),ST; + fstp a; + fstp b; + } + + if(a != 0.0f){ + assert(0); + } + if(b != -4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivrp_01_B.d --- a/run/a/asm_fdivrp_01_B.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fdivrp_01_B; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - float a = -3.0f; - float b = 12.0f; - - asm{ - fldz; - fld b; - fld a; - fdivrp; - fstp a; - fstp b; - } - - if(a != -4.0f){ - assert(0); - } - if(b != 0.0f){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fdivrp_01_B2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fdivrp_01_B2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fdivrp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float b = -3.0f; + float a = 12.0f; + + asm{ + fldz; + fld b; + fld a; + fdivrp; + fstp a; + fstp b; + } + + if(a != -4.0f){ + assert(0); + } + if(b != 0.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubp_01_A.d --- a/run/a/asm_fsubp_01_A.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fsubp_01_A; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - double a = -1.2; - double b = 2.4; - - asm{ - fld1; - fldz; - fld a; - fld b; - fsubp; - fstp a; - fstp b; - } - - a -= 3.6; - - if(a < 0.0){ - a = -a; - } - - if(a > a.epsilon * 4.0){ - assert(0); - } - - if(b != 0.0){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubp_01_A2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubp_01_A2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,51 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + double b = -1.2; + double a = 2.4; + + asm{ + fld1; + fldz; + fld a; + fld b; + fsubp; + fstp a; + fstp b; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubp_01_B.d --- a/run/a/asm_fsubp_01_B.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fsubp_01_B; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - double a = -1.2; - double b = 2.4; - - asm{ - fld1; - fld a; - fldz; - fld b; - fsubp ST(2), ST; - fstp b; - fstp a; - } - - a -= 3.6; - - if(a < 0.0){ - a = -a; - } - - if(a > a.epsilon * 4.0){ - assert(0); - } - - if(b != 0.0){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubp_01_B2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubp_01_B2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,51 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + double b = -1.2; + double a = 2.4; + + asm{ + fld1; + fld a; + fldz; + fld b; + fsubp ST(2), ST; + fstp b; + fstp a; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubrp_01_A.d --- a/run/a/asm_fsubrp_01_A.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fsubrp_01_A; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - double a = -1.2; - double b = 2.4; - - asm{ - fld1; - fldz; - fld b; - fld a; - fsubrp; - fstp a; - fstp b; - } - - a -= 3.6; - - if(a < 0.0){ - a = -a; - } - - if(a > a.epsilon * 4.0){ - assert(0); - } - - if(b != 0.0){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubrp_01_A2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubrp_01_A2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,51 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubrp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + double b = -1.2; + double a = 2.4; + + asm{ + fld1; + fldz; + fld b; + fld a; + fsubrp; + fstp a; + fstp b; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubrp_01_B.d --- a/run/a/asm_fsubrp_01_B.d Tue Apr 07 17:42:12 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fsubrp_01_B; - -version(D_InlineAsm_X86){ - version = runTest; -}else version(D_InlineAsm_X86_64){ - version = runTest; -} - -version(runTest){ - import addon.cpuinfo; - - int main(){ - haveFPU!()(); - - double a = -1.2; - double b = 2.4; - - asm{ - fld1; - fld b; - fldz; - fld a; - fsubrp ST(2), ST; - fstp b; - fstp a; - } - - a -= 3.6; - - if(a < 0.0){ - a = -a; - } - - if(a > a.epsilon * 4.0){ - assert(0); - } - - if(b != 0.0){ - assert(0); - } - - return 0; - } -}else{ - pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); - static assert(0); -} diff -r 392a442e2d64 -r ebff718ff18b run/a/asm_fsubrp_01_B2.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubrp_01_B2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,51 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubrp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + double b = -1.2; + double a = 2.4; + + asm{ + fld1; + fld b; + fldz; + fld a; + fsubrp ST(2), ST; + fstp b; + fstp a; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}