diff options
author | Jeff Law <law@gcc.gnu.org> | 1998-02-17 14:50:10 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-02-17 14:50:10 -0700 |
commit | d84a12e2de3b034e416eba9f808be56e309bc30d (patch) | |
tree | 268785ac20d85e35c8250dd8494accdd79976bc8 /gcc | |
parent | 979c1a1757fb266f90fb8888d6499783d81f5a2a (diff) | |
download | gcc-d84a12e2de3b034e416eba9f808be56e309bc30d.zip gcc-d84a12e2de3b034e416eba9f808be56e309bc30d.tar.gz gcc-d84a12e2de3b034e416eba9f808be56e309bc30d.tar.bz2 |
New testcase for x86 XFmode problems.
From-SVN: r18051
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.dg/980211-1.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/980211-1.c b/gcc/testsuite/gcc.dg/980211-1.c new file mode 100644 index 0000000..6332b7e --- /dev/null +++ b/gcc/testsuite/gcc.dg/980211-1.c @@ -0,0 +1,27 @@ +/* Test long double on x86. */ + +/* { dg-do run { target i?86-*-* } } */ +/* { dg-options -O2 } */ + +__inline int +__signbitl (long double __x) +{ + union { long double __l; int __i[3]; } __u = { __l: __x }; + + return (__u.__i[2] & 0x8000) != 0; +} + +void +foo (long double x, long double y) +{ + long double z = x / y; + if (__signbitl (x) && __signbitl (z)) + abort (); +} + +int main() +{ + if (sizeof (long double) > sizeof (double)) + foo (-0.0, -1.0); + return 0; +} |