OSDN Git Service

2001-01-25 Jeffrey Oldham <oldham@codesourcery.com>
authoroldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 25 Jan 2001 17:58:26 +0000 (17:58 +0000)
committeroldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 25 Jan 2001 17:58:26 +0000 (17:58 +0000)
* gcc.c-torture/execute/ieee/20000320-1.c (main): For MIPS, change
floating point number rounding mode to round to the nearest
representable mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39268 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c

index a8352d8..cbe116f 100644 (file)
@@ -1,3 +1,9 @@
+2001-01-25  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * gcc.c-torture/execute/ieee/20000320-1.c (main): For MIPS, change
+       floating point number rounding mode to round to the nearest
+       representable mode.
+
 2001-01-25  Jakub Jelinek  <jakub@redhat.com>
 
        * g++.old-deja/g++.other/mangle2.C: New test.
index 798e542..274a12e 100644 (file)
@@ -1,3 +1,6 @@
+#if defined(__mips__) && defined(__sgi__)
+#include <sys/fpu.h>
+#endif /* defined(__mips__) && defined(__sgi__) */
 #include <limits.h>
 #if UINT_MAX != 4294967295u || (ULONG_LONG_MAX != 18446744073709551615ull && ULONG_MAX != 18446744073709551615ull)
 int main(void) { exit (0); }
@@ -32,6 +35,15 @@ void c(ull d, ul f)
 
 int main()
 {
+#if defined(__mips__) && defined(__sgi__)
+  /* Many MIPS chips round denormalized floating point numbers to zero
+     rather than follow the IEEE standard.  Change the rounding mode
+     to correspond to the IEEE rounding mode that rounds numbers to
+     the nearest representable mode, the most common IEEE rounding
+     mode.  */
+  set_fpc_csr(0);
+#endif /* defined(__mips__) && defined(__sgi__) */
+
   if (sizeof (float) != sizeof (ul)
       || sizeof (double) != sizeof (ull))
     exit (0);