From 22892fc60deb42b5f3b8ac712529fba1d7787954 Mon Sep 17 00:00:00 2001 From: Jeffrey Oldham Date: Thu, 25 Jan 2001 17:58:26 +0000 Subject: [PATCH] 20000320-1.c (main): For MIPS... 2001-01-25 Jeffrey Oldham * 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 --- gcc/testsuite/ChangeLog | 6 ++++++ .../gcc.c-torture/execute/ieee/20000320-1.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a8352d8a3fe..cbe116f9b9b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2001-01-25 Jeffrey Oldham + + * 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 * 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 798e54256bf..274a12ebfc4 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 +#endif /* defined(__mips__) && defined(__sgi__) */ #include #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); -- 2.30.2