Fix i386/x86_64 expl, exp10l, expm1l for sNaN input (bug 20226).
commit9bd3ef8e19b19fb3cfcf99a33a1493035891b990
authorJoseph Myers <joseph@codesourcery.com>
Wed, 8 Jun 2016 21:55:06 +0000 (8 21:55 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 8 Jun 2016 21:55:06 +0000 (8 21:55 +0000)
treeca830d25692074e5b5800ee2f530a2d314fa2a0b
parent9946e7a949d3b0f2795d930aa2f2ce7bda5e4f8a
Fix i386/x86_64 expl, exp10l, expm1l for sNaN input (bug 20226).

The i386 and x86_64 implementations of expl, exp10l and expm1l (code
shared between the functions) return sNaN for sNaN input.  This patch
fixes them to add NaN inputs to themselves so that qNaN is returned in
this case.

Tested for x86_64 and x86.

[BZ #20226]
* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Add NaN argument to
itself.
* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL): Likewise.
* math/libm-test.inc (exp_test_data): Add sNaN tests.
(exp10_test_data): Likewise.
(expm1_test_data): Likewise.
ChangeLog
math/libm-test.inc
sysdeps/i386/fpu/e_expl.S
sysdeps/x86_64/fpu/e_expl.S