1/* Test long double on x86 and x86-64. */ 2 3/* { dg-do run } */ 4/* { dg-options -O2 } */ 5 6extern void abort (void); 7 8__inline int 9__signbitl0 (long double __x) 10{ 11 union { long double __l; int __i[3]; } __u = { __l: __x }; 12 13 return (__u.__i[2] & 0x8000) != 0; 14} 15 16void 17foo (long double x, long double y) 18{ 19 long double z = x / y; 20 if (__signbitl0 (x) && __signbitl0 (z)) 21 abort (); 22} 23 24int main() 25{ 26 if (sizeof (long double) > sizeof (double)) 27 foo (-0.0, -1.0); 28 return 0; 29} 30