diff options
author | Jeffrey Oldham <oldham@codesourcery.com> | 2001-01-25 17:58:26 +0000 |
---|---|---|
committer | Jeffrey D. Oldham <oldham@gcc.gnu.org> | 2001-01-25 17:58:26 +0000 |
commit | 22892fc60deb42b5f3b8ac712529fba1d7787954 (patch) | |
tree | 1319630a72afdaedea6e0c181e8c6e61e0583d71 /gcc | |
parent | 69d211dd50e809c93f019b2af6a708a99a5094b5 (diff) | |
download | gcc-22892fc60deb42b5f3b8ac712529fba1d7787954.zip gcc-22892fc60deb42b5f3b8ac712529fba1d7787954.tar.gz gcc-22892fc60deb42b5f3b8ac712529fba1d7787954.tar.bz2 |
20000320-1.c (main): For MIPS...
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.
From-SVN: r39268
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a8352d8..cbe116f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c index 798e542..274a12e 100644 --- a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c @@ -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); |