- return x*pio2; /* asin(+-1) = +-pi/2 with inexact */
- return (x-x)/(x-x); /* asin(|x|>1) is NaN */
- } else if (ix < 0x3f000000) { /* |x|<0.5 */
+ return x*pio2 + 0x1p-120f; /* asin(+-1) = +-pi/2 with inexact */
+ return 0/(x-x); /* asin(|x|>1) is NaN */
+ }
+ if (ix < 0x3f000000) { /* |x| < 0.5 */