Fix i386 atanhl spurious underflows (bug 18049).
commit526af54142db14c1edcd2d80dc1b56d33ff4e8ce
authorJoseph Myers <joseph@codesourcery.com>
Tue, 19 May 2015 23:05:22 +0000 (19 23:05 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 19 May 2015 23:05:22 +0000 (19 23:05 +0000)
tree04991e58f9d8c05a94a492eda37747bdcc8a4740
parent88ed594f5d431d855256edbe7e886c8cf4b575dc
Fix i386 atanhl spurious underflows (bug 18049).

The i386 implementation of atanhl, for small arguments, does a
calculation that involves computing twice the square of the argument,
resulting in spurious underflows for some arguments.  This patch fixes
this by just returning the argument when its exponent is below -32,
with underflow being forced as needed for subnormal arguments.

Tested for x86 and x86_64.

[BZ #18049]
* sysdeps/i386/fpu/e_atanhl.S (__ieee754_atanhl): For exponents
below -32, return the argument, with underflow if subnormal.
* math/auto-libm-test-in: Add more tests of atanh.
* math/auto-libm-test-out: Regenerated.
ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/i386/fpu/e_atanhl.S