diff options
| author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-28 02:41:14 +0000 |
|---|---|---|
| committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-28 02:41:14 +0000 |
| commit | 6d2e901f0421c73e6719b66a1be0d27c9ff02f08 (patch) | |
| tree | b0c28630163f7f911309e25022ada80efb24b629 /gcc/testsuite | |
| parent | 8548aaf714752b94540584e437fb841d3da767dc (diff) | |
| download | ppe42-gcc-6d2e901f0421c73e6719b66a1be0d27c9ff02f08.tar.gz ppe42-gcc-6d2e901f0421c73e6719b66a1be0d27c9ff02f08.zip | |
* fold-const.c (fold_inf_compare): New function to simplify FP
comparisons against +Infinity or -Infinity.
(fold): Optimize floating point comparisons against Infs and NaNs.
* gcc.c-torture/execute/ieee/fp-cmp-6.c: New test case.
* gcc.c-torture/execute/ieee/fp-cmp-7.c: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64945 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c | 31 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.c | 14 |
3 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c438ad3c837..f9d63b210a7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-03-27 Roger Sayle <roger@eyesopen.com> + + * gcc.c-torture/execute/ieee/fp-cmp-6.c: New test case. + * gcc.c-torture/execute/ieee/fp-cmp-7.c: New test case. + 2003-03-27 Mark Mitchell <mark@codesourcery.com> * lib/gcov.exp (run-gcov): Add branches and calls options, rather diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c new file mode 100644 index 00000000000..9111d6e5c46 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c @@ -0,0 +1,31 @@ + +const double dnan = 1.0/0.0 - 1.0/0.0; +double x = 1.0; + +extern void link_error (); + +main () +{ +#if ! defined (__vax__) && ! defined (_CRAY) + /* NaN is an IEEE unordered operand. All these test should be false. */ + if (dnan == dnan) + link_error (); + if (dnan != x) + x = 1.0; + else + link_error (); + + if (dnan < x) + link_error (); + if (dnan > x) + link_error (); + if (dnan <= x) + link_error (); + if (dnan >= x) + link_error (); + if (dnan == x) + link_error (); +#endif + exit (0); +} + diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.c new file mode 100644 index 00000000000..385acafc204 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.c @@ -0,0 +1,14 @@ +extern void link_error (); + +void foo(double x) +{ + if (x > __builtin_inf()) + link_error (); +} + +int main () +{ + foo (1.0); + return 0; +} + |

