From: Julian Seward Date: Sat, 4 Feb 2006 15:43:14 +0000 (+0000) Subject: Add a check for fsincos. X-Git-Tag: svn/VALGRIND_3_2_0~301 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c63a2f2e3bd731409f4c664bf4d7795e099d1734;p=thirdparty%2Fvalgrind.git Add a check for fsincos. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5610 --- diff --git a/memcheck/tests/x86/fprem.c b/memcheck/tests/x86/fprem.c index d48b49ad9d..864c9b076b 100644 --- a/memcheck/tests/x86/fprem.c +++ b/memcheck/tests/x86/fprem.c @@ -1,5 +1,6 @@ -/* 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. */ #include @@ -33,10 +34,24 @@ double do_fprem1 ( void ) return res; } +double do_fsincos ( void ) +{ + double res; + __asm__ __volatile__( + "fldln2\n\t" + "fsincos\n\t" + "fsub %%st(1)\n\t" + "fstpl 0(%0)" + : : "r"(&res) + ); + 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; } diff --git a/memcheck/tests/x86/fprem.stdout.exp b/memcheck/tests/x86/fprem.stdout.exp index 5ba92bfdd8..dc7396c5e0 100644 --- a/memcheck/tests/x86/fprem.stdout.exp +++ b/memcheck/tests/x86/fprem.stdout.exp @@ -1,2 +1,3 @@ -fprem 0.693147 -fprem1 0.693147 +fprem 0.693147 +fprem1 0.693147 +fsincos 0.130278