1 /* This tests for a bug in regstack that was breaking glibc's math library. */
3 extern void abort (void);
8 union { double __d
; int __i
[2]; } __x
;
10 __x
.__i
[1] = 0x80000000;
14 static __inline
long double
15 __atan2l (long double __y
, long double __x
)
17 register long double __value
;
18 __asm
__volatile__ ("fpatan\n\t"
20 : "0" (__x
), "u" (__y
)
25 static __inline
long double
26 __sqrtl (long double __x
)
28 register long double __result
;
29 __asm
__volatile__ ("fsqrt" : "=t" (__result
) : "0" (__x
));
33 static __inline
double
36 return __atan2l (__x
, __sqrtl (1.0 - __x
* __x
));
47 if (x
!= 0.0) /* actually -0.0, but 0.0 == -0.0 */