about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps20
-rw-r--r--sysdeps/ieee754/ldbl-96/e_asinl.c2
2 files changed, 17 insertions, 5 deletions
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index b1196bbf47..97619e8cfd 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -11,10 +11,22 @@ ldouble: 1
 ildouble: 1
 
 # asin
+Test "asin (0.5) == pi/6":
+ldouble: 1
+ildouble: 1
+Test "asin (-0.5) == -pi/6":
+ldouble: 1
+ildouble: 1
+Test "asin (1.0) == pi/2":
+ldouble: 1
+ildouble: 1
+Test "asin (-1.0) == -pi/2":
+ldouble: 1
+ildouble: 1
 Test "asin (0.7) == 0.77539749661075306374035335271498708":
 double: 1
-ildouble: 1147
-ldouble: 1147
+ldouble: 1
+ildouble: 1
 
 # asinh
 Test "asinh (0.7) == 0.652666566082355786":
@@ -1146,8 +1158,8 @@ ldouble: 1
 
 Function: "asin":
 double: 1
-ildouble: 1147
-ldouble: 1147
+ldouble: 1
+ildouble: 1
 
 Function: "asinh":
 ildouble: 656
diff --git a/sysdeps/ieee754/ldbl-96/e_asinl.c b/sysdeps/ieee754/ldbl-96/e_asinl.c
index 202e245a41..e469431b0d 100644
--- a/sysdeps/ieee754/ldbl-96/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-96/e_asinl.c
@@ -92,7 +92,7 @@ __ieee754_asinl (x)
   ix = (ix << 16) | (i0 >> 16);
   if (ix >= 0x3fff8000)
     {				/* |x|>= 1 */
-      if (ix < 0x7fff0000 && ((i0 - 0x80000000) | i1) == 0)
+      if (ix == 0x3fff8000 && ((i0 - 0x80000000) | i1) == 0)
 	/* asin(1)=+-pi/2 with inexact */
 	return x * pio2_hi + x * pio2_lo;
       return (x - x) / (x - x);	/* asin(|x|>1) is NaN */