glibc/sysdeps/ieee754
Joseph Myers ca121b117f Fix ldbl-96 fma (Inf, Inf, finite) (bug 23272).
As reported in bug 23272, the ldbl-96 implementation of fma (fma for
double, in terms of ldbl-96 as the internal arithmetic type, as used
on 32-bit x86) is missing some of the special-case handling for
non-finite arguments, resulting in incorrect NaN results when the
first two arguments are infinities, the third is finite and so the
infinities go through the logic for finite arguments.  This patch
fixes it by handling all cases of non-finite arguments up front, with
additional fma tests for the problem cases being added to the
testsuite.

Tested for x86_64 and x86.

	[BZ #23272]
	* sysdeps/ieee754/ldbl-96/s_fma.c (__fma): Start by handling all
	cases of non-finite arguments.
	* math/libm-test-fma.inc (fma_test_data): Add more tests.
2018-06-11 16:33:42 +00:00
..
dbl-64 Fix i686-linux-gnu build with GCC mainline. 2018-05-22 16:55:04 +00:00
float128 Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
flt-32 Fix i686-linux-gnu build with GCC mainline. 2018-05-22 16:55:04 +00:00
ldbl-64-128 Don't include math.h/math_private.h in math_ldbl_opt.h. 2018-03-10 15:18:08 -05:00
ldbl-96 Fix ldbl-96 fma (Inf, Inf, finite) (bug 23272). 2018-06-11 16:33:42 +00:00
ldbl-128 Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
ldbl-128ibm Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
ldbl-opt Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
soft-fp Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
ieee754.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
k_standard.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
k_standardf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
k_standardl.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
Makefile Avoid -Wno-write-strings for k_standard.c. 2015-02-26 22:50:54 +00:00
s_lib_version.c Simplify math-svid-compat code. 2017-08-28 15:19:52 +00:00
s_matherr.c Obsolete matherr, _LIB_VERSION, libieee.a. 2017-08-21 17:45:10 +00:00
s_signgam.c Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00