1 /* This tests for a bug in regstack that was breaking glibc's math library. */
2 /* { dg-skip-if "" { ! { i?86-*-* x86_64-*-* } } } */
4 extern void abort (void);
9 union { double __d
; int __i
[2]; } __x
;
11 __x
.__i
[1] = 0x80000000;
15 static __inline
long double
16 __atan2l (long double __y
, long double __x
)
18 register long double __value
;
19 __asm
__volatile__ ("fpatan\n\t"
21 : "0" (__x
), "u" (__y
)
26 static __inline
long double
27 __sqrtl (long double __x
)
29 register long double __result
;
30 __asm
__volatile__ ("fsqrt" : "=t" (__result
) : "0" (__x
));
34 static __inline
double
37 return __atan2l (__x
, __sqrtl (1.0 - __x
* __x
));
48 if (x
!= 0.0) /* actually -0.0, but 0.0 == -0.0 */