changeset 700:98e3d2ab382f

added further fpu iasm tests
author thomask
date Tue, 04 Oct 2005 09:25:00 +0000
parents 9b960ca15583
children 93c604903b9d
files run/a/asm_fcos_01.d run/a/asm_fild_01_A.d run/a/asm_fild_01_B.d run/a/asm_fild_01_C.d run/a/asm_fimul_01_A.d run/a/asm_fimul_01_B.d run/a/asm_finit_01.d run/a/asm_fist_01_A.d run/a/asm_fist_01_B.d run/a/asm_fistp_01_A.d run/a/asm_fistp_01_B.d run/a/asm_fistp_01_C.d run/a/asm_fisttp_01_A.d run/a/asm_fisttp_01_B.d run/a/asm_fisttp_01_C.d run/a/asm_fld1_01.d run/a/asm_fldl2e_01.d run/a/asm_fldl2t_01.d run/a/asm_fldlg2_01.d run/a/asm_fldln2_01.d run/a/asm_fldpi_01.d run/a/asm_fldz_01.d run/a/asm_fmul_01_A.d run/a/asm_fmul_01_B.d run/a/asm_fmulp_01.d run/a/asm_fninit_01.d run/a/asm_fnop_01.d run/a/asm_fpatan_01.d run/a/asm_fprem1_01.d run/a/asm_fprem_01.d run/a/asm_fptan_01.d run/a/asm_frndint_01.d run/a/asm_fscale_01.d run/a/asm_fsin_01.d run/a/asm_fsincos_01.d run/a/asm_fsqrt_01.d run/a/asm_fxch_01.d run/a/asm_fxtract_01.d run/a/asm_fyl2x_01.d run/a/asm_fyl2xp1_01.d
diffstat 40 files changed, 1101 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fcos_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,25 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fcos_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = -0.0L;
+		
+		asm{
+			finit;
+			fld a;
+			fcos;
+			fstp a;
+		}
+		
+		assert(a == 1.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fild_01_A.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,25 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fild_01_A;
+
+int main(){
+	version(D_InlineAsm){
+		short i = 800;
+		real r;
+		
+		asm{
+			finit;
+			fild i;
+			fstp r;
+		}
+		
+		assert(r == 800.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fild_01_B.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,25 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fild_01_B;
+
+int main(){
+	version(D_InlineAsm){
+		int i = 800;
+		real r;
+		
+		asm{
+			finit;
+			fild i;
+			fstp r;
+		}
+		
+		assert(r == 800.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fild_01_C.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,25 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fild_01_C;
+
+int main(){
+	version(D_InlineAsm){
+		long i = 800;
+		real r;
+		
+		asm{
+			finit;
+			fild i;
+			fstp r;
+		}
+		
+		assert(r == 800.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fimul_01_A.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,30 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fimul_01_A;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.0L;
+		short b = -3;
+		
+		asm{
+			finit;
+			fld a;
+			fimul b;
+			fstp a;
+		}
+		
+		a -= -6.0;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fimul_01_B.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,30 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fimul_01_B;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.0L;
+		int b = -3;
+		
+		asm{
+			finit;
+			fld a;
+			fimul b;
+			fstp a;
+		}
+		
+		a -= -6.0;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_finit_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,18 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_finit_01;
+
+int main(){
+	version(D_InlineAsm){
+		asm{
+			finit;
+		}
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fist_01_A.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,24 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fist_01_A;
+
+int main(){
+	version(D_InlineAsm){
+		real r = 800.0L;
+		short i;
+		
+		asm{
+			fld r;
+			fist i;
+		}
+		
+		assert(i==800);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fist_01_B.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,24 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fist_01_B;
+
+int main(){
+	version(D_InlineAsm){
+		real r = 800.0L;
+		int i;
+		
+		asm{
+			fld r;
+			fist i;
+		}
+		
+		assert(i==800);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fistp_01_A.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fistp_01_A;
+
+int main(){
+	version(D_InlineAsm){
+		real r = 800.0L;
+		short a, b;
+		
+		asm{
+			fld1;
+			fld r;
+			fistp a;
+			fistp b;
+		}
+		
+		assert(a==800);
+		assert(b==1);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fistp_01_B.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fistp_01_B;
+
+int main(){
+	version(D_InlineAsm){
+		real r = 800.0L;
+		int a, b;
+		
+		asm{
+			fld1;
+			fld r;
+			fistp a;
+			fistp b;
+		}
+		
+		assert(a==800);
+		assert(b==1);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fistp_01_C.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fistp_01_C;
+
+int main(){
+	version(D_InlineAsm){
+		real r = 800.0L;
+		long a, b;
+		
+		asm{
+			fld1;
+			fld r;
+			fistp a;
+			fistp b;
+		}
+		
+		assert(a==800);
+		assert(b==1);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fisttp_01_A.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fistp_01_A;
+
+int main(){
+	version(D_InlineAsm){
+		real r = -800.9L;
+		short i;
+		
+		asm{
+			fld r;
+			fisttp i;
+		}
+		
+		assert(i==-800);
+		
+		r = -800.0L;
+		
+		asm{
+			fld r;
+			fisttp i;
+		}
+		
+		assert(i==-800);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fisttp_01_B.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fistp_01_B;
+
+int main(){
+	version(D_InlineAsm){
+		real r = -800.9L;
+		int i;
+		
+		asm{
+			fld r;
+			fisttp i;
+		}
+		
+		assert(i==-800);
+		
+		r = -800.0L;
+		
+		asm{
+			fld r;
+			fisttp i;
+		}
+		
+		assert(i==-800);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fisttp_01_C.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fistp_01_C;
+
+int main(){
+	version(D_InlineAsm){
+		real r = -800.9L;
+		long i;
+		
+		asm{
+			fld r;
+			fisttp i;
+		}
+		
+		assert(i==-800);
+		
+		r = -800.0L;
+		
+		asm{
+			fld r;
+			fisttp i;
+		}
+		
+		assert(i==-800);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fld1_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fld1_01;
+
+int main(){
+	version(D_InlineAsm){
+		real r = -800.9L;
+		
+		asm{
+			fld1;
+			fstp r;
+		}
+		
+		assert(r==1.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fldl2e_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fld2e_01;
+
+int main(){
+	version(D_InlineAsm){
+		double f = -800.9;
+		
+		asm{
+			fldl2e;
+			fstp f;
+		}
+		
+		f -= 0x1.71547652B82fE178p+0;
+		
+		f = (f>0) ? f : -f;
+		
+		assert(f < f.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fldl2t_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fld2t_01;
+
+int main(){
+	version(D_InlineAsm){
+		real r = -800.9;
+		
+		asm{
+			fldl2t;
+			fstp r;
+		}
+		
+		r -= 3.321928094887362347870319429489L;
+		
+		r = (r>0) ? r : -r;
+		
+		assert(r < r.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fldlg2_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fldlg2_01;
+
+int main(){
+	version(D_InlineAsm){
+		double f = -800.9;
+		
+		asm{
+			fldlg2;
+			fstp f;
+		}
+		
+		f -= 0.30102999566398119521373889472449L;
+		
+		f = (f>0) ? f : -f;
+		
+		assert(f < f.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fldln2_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fldln2_01;
+
+int main(){
+	version(D_InlineAsm){
+		double f = -800.9;
+		
+		asm{
+			fldln2;
+			fstp f;
+		}
+		
+		f -= 0.69314718055994530941723212145818L;
+		
+		f = (f>0) ? f : -f;
+		
+		assert(f < f.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fldpi_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fldpi_01;
+
+int main(){
+	version(D_InlineAsm){
+		double f = -800.9;
+		
+		asm{
+			fldpi;
+			fstp f;
+		}
+		
+		f -= 0x1.921FB54442D1846Ap+1;
+		
+		f = (f>0) ? f : -f;
+		
+		assert(f < f.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fldz_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fldz_01;
+
+int main(){
+	version(D_InlineAsm){
+		real r = -800.9L;
+		
+		asm{
+			fldz;
+			fstp r;
+		}
+		
+		assert(r==0.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fmul_01_A.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,30 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fmul_01_A;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.0L;
+		double f = -3.0;
+		
+		asm{
+			finit;
+			fld a;
+			fmul f;
+			fst f;
+		}
+		
+		f -= -6.0;
+		
+		f = (f>0) ? f : -f;
+		
+		assert(f < f.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fmul_01_B.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,30 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fmul_01_B;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.0L;
+		float f = -3.0;
+		
+		asm{
+			finit;
+			fld a;
+			fmul f;
+			fst f;
+		}
+		
+		f -= -6.0;
+		
+		f = (f>0) ? f : -f;
+		
+		assert(f < f.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fmulp_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fmulp_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.0L;
+		real b = -3.0;
+		
+		asm{
+			finit;
+			fld a;
+			fld b;
+			fmulp;
+			fstp a;
+		}
+		
+		a -= -6.0;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fninit_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,18 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fninit_01;
+
+int main(){
+	version(D_InlineAsm){
+		asm{
+			fninit;
+		}
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fnop_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,18 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fnop_01;
+
+int main(){
+	version(D_InlineAsm){
+		asm{
+			fnop;
+		}
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fpatan_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fpatan_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.2L;
+		real b = -0.0L;
+		
+		asm{
+			finit;
+			fld a;
+			fld b;
+			fpatan;
+			fstp a;
+			fldpi;
+			fstp b;
+		}
+		
+		a -= b/2;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fprem1_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fprem1_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 3.0L;
+		real b = 8.0L;
+		
+		asm{
+			finit;
+			fld a;
+			fld b;
+			fprem1;
+			fstp a;
+		}
+		
+		a += 1.0L;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fprem_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fprem_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 3.0L;
+		real b = 8.0L;
+		
+		asm{
+			finit;
+			fld a;
+			fld b;
+			fprem;
+			fstp a;
+		}
+		
+		a -= 2.0L;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fptan_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fptan_01;
+
+int main(){
+	version(D_InlineAsm){
+		double a = 4.0L;
+		double b;
+		
+		asm{
+			finit;
+			fld a;
+			fptan;
+			fstp b;
+			fstp a;
+		}
+		
+		assert(b == 1.0L);
+		
+		a -= 1.1578212823495774852L;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_frndint_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,29 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_frndint_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 4.6L;
+		
+		asm{
+			finit;
+			fld a;
+			frndint;
+			fstp a;
+		}
+				
+		a -= 5.0L;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fscale_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fscale_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 4.6L;
+		real b = 1;
+		
+		asm{
+			finit;
+			fld a;
+			fld b;
+			fscale;
+			fstp a;
+		}
+			
+		a -= 16.0L;
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fsin_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fsin_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.2L;
+		
+		asm{
+			finit;
+			fldpi;
+			fsin;
+			fstp a;
+		}
+		
+		a = (a>0) ? a : -a;
+		
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fsincos_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fsincos_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 2.2L;
+		real b = 2.2L;
+		
+		asm{
+			finit;
+			fldz;
+			fsincos;
+			fstp a;
+			fstp b;
+		}
+		
+		a -= 1.0L;
+		a = (a>0) ? a : -a;
+		assert(a < a.epsilon * 4);
+		
+		assert(b == 0.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fsqrt_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fsqrt_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = 9.0L;
+		
+		asm{
+			finit;
+			fld a;
+			fsqrt;
+			fstp a;
+		}
+		
+		a -= 3.0L;
+		a = (a>0) ? a : -a;
+		assert(a < a.epsilon * 4);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fxch_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fxch_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = -1.0f;
+		real b = 3.5f;
+		
+		real a2, b2;
+		
+		asm{
+			finit;
+			fld a;
+			fld b;
+			fxch;
+			fstp b2;
+			fstp a2;
+		}
+		
+		assert(a2==b);
+		assert(b2==a);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fxtract_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,29 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fxtract_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = -8.0f;
+		
+		double exponent, significand;
+		
+		asm{
+			finit;
+			fld a;
+			fxtract;
+			fstp significand;
+			fstp exponent;
+		}
+		
+		assert(significand == -1.0f);
+		assert(exponent == 3.0f);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fyl2x_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fyl2x_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = -2.0L;
+		
+		asm{
+			finit;
+			fld a;
+			fld1;
+			fyl2x;
+			fstp a;
+			fstp a;
+		}
+		
+		assert(a == -0.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fyl2xp1_01.d	Tue Oct 04 09:25:00 2005 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fyl2xp1_01;
+
+int main(){
+	version(D_InlineAsm){
+		real a = -0.0L;
+		
+		asm{
+			finit;
+			fld a;
+			fld a;
+			fyl2xp1;
+			fstp a;
+			fstp a;
+		}
+		
+		assert(a == 0.0L);
+		
+		return 0;
+	}else{
+		pragma(msg, "no Inline asm support");
+		static assert(0);
+	}
+}
\ No newline at end of file