aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-08-16 22:30:56 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2016-08-16 22:30:56 +0100
commitfeeb62681cf1d70079365721b97b3cee8d6ef7c4 (patch)
tree299b49c5a560f4d4d442e2a0f699b3e63dc41e10 /gcc/testsuite/gcc.dg
parent4687d82a93265f708c72861f8cfc1c77f61bf7c9 (diff)
downloadgcc-feeb62681cf1d70079365721b97b3cee8d6ef7c4.zip
gcc-feeb62681cf1d70079365721b97b3cee8d6ef7c4.tar.gz
gcc-feeb62681cf1d70079365721b97b3cee8d6ef7c4.tar.bz2
Update soft-fp from glibc (PR libgcc/77265).
This patch updates soft-fp from glibc, bringing in the fix for PR libgcc/77265, XFmode extension to TFmode wrongly turning an infinity into a NaN. A test for that bug is added. Bootstrapped with no regressions on x86_64-pc-linux-gnu. PR libgcc/77265 gcc/testsuite: * gcc.dg/torture/float128-extend-inf.c: New test. libgcc: * soft-fp/adddf3.c: Update from glibc. * soft-fp/addsf3.c: Likewise. * soft-fp/addtf3.c: Likewise. * soft-fp/divdf3.c: Likewise. * soft-fp/divsf3.c: Likewise. * soft-fp/divtf3.c: Likewise. * soft-fp/double.h: Likewise. * soft-fp/eqdf2.c: Likewise. * soft-fp/eqsf2.c: Likewise. * soft-fp/eqtf2.c: Likewise. * soft-fp/extenddftf2.c: Likewise. * soft-fp/extended.h: Likewise. * soft-fp/extendsfdf2.c: Likewise. * soft-fp/extendsftf2.c: Likewise. * soft-fp/extendxftf2.c: Likewise. * soft-fp/fixdfdi.c: Likewise. * soft-fp/fixdfsi.c: Likewise. * soft-fp/fixdfti.c: Likewise. * soft-fp/fixsfdi.c: Likewise. * soft-fp/fixsfsi.c: Likewise. * soft-fp/fixsfti.c: Likewise. * soft-fp/fixtfdi.c: Likewise. * soft-fp/fixtfsi.c: Likewise. * soft-fp/fixtfti.c: Likewise. * soft-fp/fixunsdfdi.c: Likewise. * soft-fp/fixunsdfsi.c: Likewise. * soft-fp/fixunsdfti.c: Likewise. * soft-fp/fixunssfdi.c: Likewise. * soft-fp/fixunssfsi.c: Likewise. * soft-fp/fixunssfti.c: Likewise. * soft-fp/fixunstfdi.c: Likewise. * soft-fp/fixunstfsi.c: Likewise. * soft-fp/fixunstfti.c: Likewise. * soft-fp/floatdidf.c: Likewise. * soft-fp/floatdisf.c: Likewise. * soft-fp/floatditf.c: Likewise. * soft-fp/floatsidf.c: Likewise. * soft-fp/floatsisf.c: Likewise. * soft-fp/floatsitf.c: Likewise. * soft-fp/floattidf.c: Likewise. * soft-fp/floattisf.c: Likewise. * soft-fp/floattitf.c: Likewise. * soft-fp/floatundidf.c: Likewise. * soft-fp/floatundisf.c: Likewise. * soft-fp/floatunditf.c: Likewise. * soft-fp/floatunsidf.c: Likewise. * soft-fp/floatunsisf.c: Likewise. * soft-fp/floatunsitf.c: Likewise. * soft-fp/floatuntidf.c: Likewise. * soft-fp/floatuntisf.c: Likewise. * soft-fp/floatuntitf.c: Likewise. * soft-fp/gedf2.c: Likewise. * soft-fp/gesf2.c: Likewise. * soft-fp/getf2.c: Likewise. * soft-fp/ledf2.c: Likewise. * soft-fp/lesf2.c: Likewise. * soft-fp/letf2.c: Likewise. * soft-fp/muldf3.c: Likewise. * soft-fp/mulsf3.c: Likewise. * soft-fp/multf3.c: Likewise. * soft-fp/negdf2.c: Likewise. * soft-fp/negsf2.c: Likewise. * soft-fp/negtf2.c: Likewise. * soft-fp/op-1.h: Likewise. * soft-fp/op-2.h: Likewise. * soft-fp/op-4.h: Likewise. * soft-fp/op-8.h: Likewise. * soft-fp/op-common.h: Likewise. * soft-fp/quad.h: Likewise. * soft-fp/single.h: Likewise. * soft-fp/soft-fp.h: Likewise. * soft-fp/subdf3.c: Likewise. * soft-fp/subsf3.c: Likewise. * soft-fp/subtf3.c: Likewise. * soft-fp/truncdfsf2.c: Likewise. * soft-fp/trunctfdf2.c: Likewise. * soft-fp/trunctfsf2.c: Likewise. * soft-fp/trunctfxf2.c: Likewise. * soft-fp/unorddf2.c: Likewise. * soft-fp/unordsf2.c: Likewise. * soft-fp/unordtf2.c: Likewise. From-SVN: r239513
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r--gcc/testsuite/gcc.dg/torture/float128-extend-inf.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/float128-extend-inf.c b/gcc/testsuite/gcc.dg/torture/float128-extend-inf.c
new file mode 100644
index 0000000..35f6efc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/float128-extend-inf.c
@@ -0,0 +1,40 @@
+/* Test infinities convert to __float128 infinity. Bug 77265. */
+/* { dg-do run } */
+/* { dg-require-effective-target __float128 } */
+/* { dg-require-effective-target base_quadfloat_support } */
+/* { dg-add-options __float128 } */
+
+extern void abort (void);
+extern void exit (int);
+
+volatile float finf = __builtin_inff ();
+volatile double dinf = __builtin_inf ();
+volatile long double ldinf = __builtin_infl ();
+volatile float nfinf = -__builtin_inff ();
+volatile double ndinf = -__builtin_inf ();
+volatile long double nldinf = -__builtin_infl ();
+
+int
+main (void)
+{
+ volatile __float128 r;
+ r = (__float128) finf;
+ if (!__builtin_isinf (r) || __builtin_signbit (r) != 0)
+ abort ();
+ r = (__float128) dinf;
+ if (!__builtin_isinf (r) || __builtin_signbit (r) != 0)
+ abort ();
+ r = (__float128) ldinf;
+ if (!__builtin_isinf (r) || __builtin_signbit (r) != 0)
+ abort ();
+ r = (__float128) nfinf;
+ if (!__builtin_isinf (r) || __builtin_signbit (r) == 0)
+ abort ();
+ r = (__float128) ndinf;
+ if (!__builtin_isinf (r) || __builtin_signbit (r) == 0)
+ abort ();
+ r = (__float128) nldinf;
+ if (!__builtin_isinf (r) || __builtin_signbit (r) == 0)
+ abort ();
+ exit (0);
+}