Fix atanhl missing underflows (bug 16352).
authorJoseph Myers <joseph@codesourcery.com>
Fri, 15 May 2015 22:07:57 +0000 (22:07 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 15 May 2015 22:07:57 +0000 (22:07 +0000)
commit8020a808870dc6199e584562b3b64f52054359e8
treece9400206b43fc1db091871c50d2e5e10c78c1fb
parent5a608ccc2d676aa124f6b55a7b20d071e408ca31
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.
ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/i386/fpu/e_atanh.S
sysdeps/i386/fpu/e_atanhf.S
sysdeps/ieee754/dbl-64/e_atanh.c
sysdeps/ieee754/flt-32/e_atanhf.c
sysdeps/ieee754/ldbl-128/e_atanhl.c
sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
sysdeps/ieee754/ldbl-96/e_atanhl.c