PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / 980211-1.c
blobad6312b370b9e662e2ebdee76b33cec4ec50a999
1 /* Test long double on x86 and x86-64. */
3 /* { dg-do run } */
4 /* { dg-options -O2 } */
6 extern void abort (void);
8 __inline int
9 __signbitl0 (long double __x)
11 union { long double __l; int __i[3]; } __u = { __l: __x };
13 return (__u.__i[2] & 0x8000) != 0;
16 void
17 foo (long double x, long double y)
19 long double z = x / y;
20 if (__signbitl0 (x) && __signbitl0 (z))
21 abort ();
24 int main()
26 if (sizeof (long double) > sizeof (double))
27 foo (-0.0, -1.0);
28 return 0;