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 */