OSDN Git Service

* gcc.dg/altivec-vec-merge.c: Make test usable on GNU/Linux targets
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / 980211-1.c
1 /* Test long double on x86 and x86-64. */
2
3 /* { dg-do run { target i?86-*-* x86_64-*-*} } */
4 /* { dg-options -O2 } */
5
6 extern void abort (void);
7
8 __inline int
9 __signbitl (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
16 void
17 foo (long double x, long double y)
18 {
19   long double z = x / y;
20   if (__signbitl (x) && __signbitl (z))
21     abort ();
22 }
23
24 int main()
25 {
26   if (sizeof (long double) > sizeof (double))
27     foo (-0.0, -1.0);
28   return 0;
29 }