glibc/sysdeps/ieee754/ldbl-96
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
..
bits Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
include/bits Add canonicalize, canonicalizef, canonicalizel. 2016-10-26 23:14:31 +00:00
e_acoshl.c Rename all __ieee754_sqrt(f/l) calls to sqrt(f/l) 2018-03-15 19:21:36 +00:00
e_asinl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_atanhl.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
e_coshl.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_gammal_r.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_hypotl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_j0l.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
e_j1l.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_jnl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_lgammal_r.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_rem_pio2l.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_sinhl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
gamma_product.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
gamma_productl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
k_cosl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
k_sinl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
k_tanl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
ldbl2mpn.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lgamma_negl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lgamma_product.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lgamma_productl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
math_ldbl.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
math-nan-payload-ldouble.h math: Merge strtod_nan_*.h into math-type-macros-*.h 2018-05-16 06:03:08 +02:00
mpn2ldbl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
printf_fphex.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_asinhl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_cbrtl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_copysignl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_cosl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_daddl.c Add narrowing add functions. 2018-02-10 02:08:43 +00:00
s_ddivl.c Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
s_dmull.c Add narrowing multiply functions. 2018-05-16 00:05:28 +00:00
s_dsubl.c Add narrowing subtract functions. 2018-03-20 00:34:52 +00:00
s_erfl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_faddl.c Add narrowing add functions. 2018-02-10 02:08:43 +00:00
s_fdivl.c Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
s_fma.c Fix ldbl-96 fma (Inf, Inf, finite) (bug 23272). 2018-06-11 16:33:42 +00:00
s_fmal.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_fmull.c Add narrowing multiply functions. 2018-05-16 00:05:28 +00:00
s_frexpl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_fromfpl_main.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fromfpl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_fromfpxl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_fsubl.c Add narrowing subtract functions. 2018-03-20 00:34:52 +00:00
s_getpayloadl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_iscanonicall.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_issignalingl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_llrintl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_llroundl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_lrintl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_lroundl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_modfl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_nexttoward.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_nexttowardf.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_nextupl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_remquol.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_roundevenl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_roundl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_scalblnl.c Fix ldbl-96 scalblnl underflowing results (bug 17803). 2015-01-12 23:02:14 +00:00
s_setpayloadl_main.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_setpayloadl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_setpayloadsigl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_signbitl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_sincosl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_sinl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_tanhl.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_tanl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_totalorderl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_totalordermagl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_ufromfpl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
s_ufromfpxl.c Use libm_alias_ldouble for ldbl-96 functions. 2017-10-05 21:13:40 +00:00
strtold_l.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
t_sincosl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
test-canonical-ldbl-96.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
test-totalorderl-ldbl-96.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
x2y2m1.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
x2y2m1l.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00