aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2007-07-18 17:42:12 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2007-07-18 17:42:12 +0000
commit0c8d3c2b0852bf0eca1413c311fc3d2a9d3c1ade (patch)
tree25f7979650149bcd55f9e00ab15c292b6ca66e36 /gcc/testsuite
parent7faa1bbb5d0206cc83f20c1145f612f7754fdcf3 (diff)
downloadgcc-0c8d3c2b0852bf0eca1413c311fc3d2a9d3c1ade.zip
gcc-0c8d3c2b0852bf0eca1413c311fc3d2a9d3c1ade.tar.gz
gcc-0c8d3c2b0852bf0eca1413c311fc3d2a9d3c1ade.tar.bz2
re PR target/30652 (SSE expansion is missing for isinf() and other fpclassify functions)
PR target/30652 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing optabs infrastructure. Provide generic implementation for FINITE/ISFINITE. (expand_builtin): Handle FINITE/ISFINITE. (fold_builtin_classify): Make ISFINITE canonical instead of FINITE. (fold_builtin_1): Likewise. * builtins.def (BUILT_IN_ISFINITE): New. * doc/extend.texi: Document isfinite. testsuite: * gcc.dg/pr28796-1.c: Add more cases. * gcc.dg/pr28796-2.c: Likewise. From-SVN: r126725
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr28796-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/pr28796-2.c13
3 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1c48519..64a5d01 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -3,6 +3,11 @@
* gcc.dg/pr28796-1.c: Add more cases.
* gcc.dg/pr28796-2.c: Likewise.
+2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/pr28796-1.c: Add more cases.
+ * gcc.dg/pr28796-2.c: Likewise.
+
2007-07-17 Janus Weil <jaydub66@gmail.com>
PR fortran/32535
diff --git a/gcc/testsuite/gcc.dg/pr28796-1.c b/gcc/testsuite/gcc.dg/pr28796-1.c
index d200b1a..077118a 100644
--- a/gcc/testsuite/gcc.dg/pr28796-1.c
+++ b/gcc/testsuite/gcc.dg/pr28796-1.c
@@ -38,6 +38,20 @@ int main()
if (__builtin_finitel (ld) != 1)
link_error ();
+ if (__builtin_isinf (f) != 0)
+ link_error ();
+ if (__builtin_isinf (d) != 0)
+ link_error ();
+ if (__builtin_isinf (ld) != 0)
+ link_error ();
+
+ if (__builtin_isfinite (f) != 1)
+ link_error ();
+ if (__builtin_isfinite (d) != 1)
+ link_error ();
+ if (__builtin_isfinite (ld) != 1)
+ link_error ();
+
if (f != f)
link_error ();
if (d != d)
diff --git a/gcc/testsuite/gcc.dg/pr28796-2.c b/gcc/testsuite/gcc.dg/pr28796-2.c
index 2545484..6f929a8 100644
--- a/gcc/testsuite/gcc.dg/pr28796-2.c
+++ b/gcc/testsuite/gcc.dg/pr28796-2.c
@@ -43,10 +43,23 @@ foo_1 (float f, double d, long double ld,
if (__builtin_isinfl (ld) != res_isinf)
abort ();
+ if (__builtin_isfinite (f) != res_isfin)
+ abort ();
+ if (__builtin_isfinite (d) != res_isfin)
+ abort ();
+ if (__builtin_isfinite (ld) != res_isfin)
+ abort ();
+
+ if (__builtin_finitef (f) != res_isfin)
+ abort ();
if (__builtin_finite (f) != res_isfin)
abort ();
if (__builtin_finite (d) != res_isfin)
abort ();
+ if (__builtin_finitel (d) != res_isfin)
+ abort ();
+ if (__builtin_finitel (ld) != res_isfin)
+ abort ();
}
void __attribute__ ((__noinline__))