about summary refs log tree commit diff
path: root/math/auto-libm-test-in
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-05-15 22:07:57 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-05-15 22:07:57 +0000
commit8020a808870dc6199e584562b3b64f52054359e8 (patch)
treece9400206b43fc1db091871c50d2e5e10c78c1fb /math/auto-libm-test-in
parent5a608ccc2d676aa124f6b55a7b20d071e408ca31 (diff)
downloadglibc-8020a808870dc6199e584562b3b64f52054359e8.tar.gz
glibc-8020a808870dc6199e584562b3b64f52054359e8.tar.xz
glibc-8020a808870dc6199e584562b3b64f52054359e8.zip
Fix atanhl missing underflows (bug 16352).
Similar to various other bugs in this area, some atanh implementations
do not raise the underflow exception for subnormal arguments, when the
result is tiny and inexact.  This patch forces the exception in a
similar way to previous fixes.  (No change in this regard is needed
for the i386 implementation; special handling to force underflows in
these cases will only be needed there when the spurious underflows,
bug 18049, get fixed.)

Tested for x86_64, x86, powerpc and mips64.

	[BZ #16352]
	* sysdeps/i386/fpu/e_atanh.S (dbl_min): New object.
	(__ieee754_atanh): Force underflow exception for results with
	small absolute value.
	* sysdeps/i386/fpu/e_atanhf.S (flt_min): New object.
	(__ieee754_atanhf): Force underflow exception for results with
	small absolute value.
	* sysdeps/ieee754/dbl-64/e_atanh.c: Include <float.h>.
	(__ieee754_atanh): Force underflow exception for results with
	small absolute value.
	* sysdeps/ieee754/flt-32/e_atanhf.c: Include <float.h>.
	(__ieee754_atanhf): Force underflow exception for results with
	small absolute value.
	* sysdeps/ieee754/ldbl-128/e_atanhl.c: Include <float.h>.
	(__ieee754_atanhl): Force underflow exception for results with
	small absolute value.
	* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Include <float.h>.
	(__ieee754_atanhl): Force underflow exception for results with
	small absolute value.
	* sysdeps/ieee754/ldbl-96/e_atanhl.c: Include <float.h>.
	(__ieee754_atanhl): Force underflow exception for results with
	small absolute value.
	* math/auto-libm-test-in: Do not allow missing underflow
	exceptions from atanh.
	* math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math/auto-libm-test-in')
-rw-r--r--math/auto-libm-test-in13
1 files changed, 6 insertions, 7 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index e483569dad..6fe0ed7d75 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -382,13 +382,12 @@ atanh 0x3.91d9f3c80c72d7acp-4
 atanh -0x2.6c52c26567198p-4
 atanh 0x3.a274ecp-4
 atanh -0x3.f0f519a687b64p-8
-# Bug 16352: underflow exception may be missing.
-atanh 0x1p-500 missing-underflow
-atanh 0x1p-5000 missing-underflow
-atanh min missing-underflow
-atanh -min missing-underflow
-atanh min_subnorm missing-underflow
-atanh -min_subnorm missing-underflow
+atanh 0x1p-500
+atanh 0x1p-5000
+atanh min
+atanh -min
+atanh min_subnorm
+atanh -min_subnorm
 
 # cabs (x,y) == cabs (y,x).
 cabs 0.75 12.390625