|
From: <sv...@va...> - 2006-02-04 15:43:19
|
Author: sewardj
Date: 2006-02-04 15:43:14 +0000 (Sat, 04 Feb 2006)
New Revision: 5610
Log:
Add a check for fsincos.
Modified:
trunk/memcheck/tests/x86/fprem.c
trunk/memcheck/tests/x86/fprem.stdout.exp
Modified: trunk/memcheck/tests/x86/fprem.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/x86/fprem.c 2006-02-04 15:26:11 UTC (rev 5609)
+++ trunk/memcheck/tests/x86/fprem.c 2006-02-04 15:43:14 UTC (rev 5610)
@@ -1,5 +1,6 @@
=20
-/* Marginally test fprem/fprem1; these are hard to check otherwise */
+/* Marginally test fprem/fprem1/fsincos; these are hard to check
+ otherwise since compilers hardly ever generate them. */
=20
#include <stdio.h>
=20
@@ -33,10 +34,24 @@
return res;
}
=20
+double do_fsincos ( void )
+{
+ double res;
+ __asm__ __volatile__(
+ "fldln2\n\t"
+ "fsincos\n\t"
+ "fsub %%st(1)\n\t"
+ "fstpl 0(%0)"
+ : : "r"(&res) =20
+ );
+ return res;
+}
+
int main ( void )
{
__asm__ __volatile__("finit");
- printf("fprem %f\n", do_fprem());
- printf("fprem1 %f\n", do_fprem1());
+ printf("fprem %f\n", do_fprem());
+ printf("fprem1 %f\n", do_fprem1());
+ printf("fsincos %f\n", do_fsincos());
return 0;
}
Modified: trunk/memcheck/tests/x86/fprem.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/x86/fprem.stdout.exp 2006-02-04 15:26:11 UTC (re=
v 5609)
+++ trunk/memcheck/tests/x86/fprem.stdout.exp 2006-02-04 15:43:14 UTC (re=
v 5610)
@@ -1,2 +1,3 @@
-fprem 0.693147
-fprem1 0.693147
+fprem 0.693147
+fprem1 0.693147
+fsincos 0.130278
|