aboutsummaryrefslogtreecommitdiff
path: root/math/auto-libm-test-in
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-05-14 12:38:56 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-05-14 12:38:56 +0000
commit1a84c3d6d4bc43c92b6531b09d732e2e9c750dea (patch)
treef58a4fd81f814868dad8426ca0da232b618e0ac2 /math/auto-libm-test-in
parent01dbacd22a8d5e0053f8d0cf13a80286b6cfe79b (diff)
downloadglibc-1a84c3d6d4bc43c92b6531b09d732e2e9c750dea.tar
glibc-1a84c3d6d4bc43c92b6531b09d732e2e9c750dea.tar.gz
glibc-1a84c3d6d4bc43c92b6531b09d732e2e9c750dea.tar.bz2
glibc-1a84c3d6d4bc43c92b6531b09d732e2e9c750dea.zip
Fix log1pl (LDBL_MAX) in FE_UPWARD mode (bug 16564).
Bug 16564 is spurious overflow of log1pl (LDBL_MAX) in FE_UPWARD mode, resulting from log1pl adding 1 to its argument (for arguments not close to 0), which overflows in that mode. This patch fixes this by avoiding adding 1 to large arguments (precisely what counts as large depends on the floating-point format). Tested x86_64 and x86, and spot-checked log1pl tests on mips64 and powerpc64. [BZ #16564] * sysdeps/i386/fpu/s_log1pl.S (__log1pl): Do not add 1 to positive arguments with exponent 65 or above. * sysdeps/ieee754/ldbl-128/s_log1pl.c (__log1pl): Do not add 1 to arguments 0x1p113L or above. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Do not add 1 to arguments 0x1p107L or above. * sysdeps/x86_64/fpu/s_log1pl.S (__log1pl): Do not add 1 to positive arguments with exponent 65 or above. * math/auto-libm-test-in: Add more tests of log1p. * math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math/auto-libm-test-in')
-rw-r--r--math/auto-libm-test-in8
1 files changed, 8 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index da93a302cc..6edad5ad7e 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1421,6 +1421,14 @@ log1p min missing-underflow
log1p min_subnorm missing-underflow
log1p -min missing-underflow
log1p -min_subnorm missing-underflow
+log1p 0x1p10
+log1p 0x1p20
+log1p 0x1p30
+log1p 0x1p50
+log1p 0x1p60
+log1p 0x1p100
+log1p 0x1p1000
+log1p max
log2 1
log2 e