diff options
author | Joseph Myers <joseph@codesourcery.com> | 2013-03-16 17:51:48 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2013-03-16 17:51:48 +0000 |
commit | d2f9799e7ca00687eb1a57f2747b4293e1a7dea6 (patch) | |
tree | 536a28c0919e8388cb94fa1ba9b75dce7d61a7bc /sysdeps | |
parent | 2a185d32e830589bf9ae50f9243bb304f84b110b (diff) | |
download | glibc-d2f9799e7ca00687eb1a57f2747b4293e1a7dea6.zip glibc-d2f9799e7ca00687eb1a57f2747b4293e1a7dea6.tar.gz glibc-d2f9799e7ca00687eb1a57f2747b4293e1a7dea6.tar.bz2 |
Fix y1l spurious overflows for ldbl-96 (bug 15283).
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 12 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_j1l.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/libm-test-ulps | 12 |
3 files changed, 25 insertions, 1 deletions
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index fd0180f..6186c99 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -2475,6 +2475,9 @@ ldouble: 2 Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17": float: 1 ifloat: 1 +Test "j0 (0x1p16382) == -1.2193782500509000574176799046642541129387e-2466": +ildouble: 1 +ldouble: 1 Test "j0 (10.0) == -0.245935764451348335197760862485328754": double: 3 float: 1 @@ -2508,6 +2511,9 @@ ldouble: 1 Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127": double: 1 idouble: 1 +Test "j1 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467": +ildouble: 1 +ldouble: 1 Test "j1 (10.0) == 0.0434727461688614366697487680258592883": double: 2 float: 1 @@ -3285,6 +3291,9 @@ idouble: 1 Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1": double: 1 idouble: 1 +Test "y0 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467": +ildouble: 1 +ldouble: 1 Test "y0 (1.0) == 0.0882569642156769579829267660235151628": double: 2 float: 1 @@ -3329,6 +3338,9 @@ ldouble: 1 Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02": float: 1 ifloat: 1 +Test "y1 (0x1p16382) == 1.2193782500509000574176799046642541129387e-2466": +ildouble: 1 +ldouble: 1 Test "y1 (1.0) == -0.781212821300288716547150000047964821": double: 1 idouble: 1 diff --git a/sysdeps/ieee754/ldbl-96/e_j1l.c b/sysdeps/ieee754/ldbl-96/e_j1l.c index 785c0b0..4c13018 100644 --- a/sysdeps/ieee754/ldbl-96/e_j1l.c +++ b/sysdeps/ieee754/ldbl-96/e_j1l.c @@ -203,7 +203,7 @@ __ieee754_y1l (long double x) __sincosl (x, &s, &c); ss = -s - c; cc = s - c; - if (ix < 0x7fe00000) + if (ix < 0x7ffe) { /* make sure x+x not overflow */ z = __cosl (x + x); if ((s * c) > zero) diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index b828774..f190ed8 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -2390,6 +2390,9 @@ ifloat: 1 Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17": float: 2 ifloat: 2 +Test "j0 (0x1p16382) == -1.2193782500509000574176799046642541129387e-2466": +ildouble: 1 +ldouble: 1 Test "j0 (10.0) == -0.245935764451348335197760862485328754": double: 2 float: 1 @@ -2420,6 +2423,9 @@ ldouble: 1 Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127": double: 1 idouble: 1 +Test "j1 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467": +ildouble: 1 +ldouble: 1 Test "j1 (10.0) == 0.0434727461688614366697487680258592883": float: 2 ifloat: 2 @@ -3073,6 +3079,9 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "y0 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467": +ildouble: 1 +ldouble: 1 Test "y0 (1.0) == 0.0882569642156769579829267660235151628": double: 2 float: 1 @@ -3117,6 +3126,9 @@ ldouble: 1 Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02": double: 1 idouble: 1 +Test "y1 (0x1p16382) == 1.2193782500509000574176799046642541129387e-2466": +ildouble: 1 +ldouble: 1 Test "y1 (1.5) == -0.412308626973911295952829820633445323": float: 1 ifloat: 1 |