Fix x86_64 fma4 pow inappropriate contraction (bug 19003).

The x86_64 fma4 version of pow fails to disable contraction of
operations other than those explicitly intended to use fma
instructions, so resulting in large ulps errors on processors with
fma4 instructions, as in bug 18104 (165ulp for the test added for that
bug; error originally reported by "blaaa" on #glibc).  This patch adds
$(config-cflags-nofma) for e_pow-fma4.c, corresponding to the use for
e_pow.c in sysdeps/ieee754/dbl-64/Makefile.

Tested for x86_64 on a processor with fma4.

	[BZ #19003]
	* sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-e_pow-fma4.c): Add
	$(config-cflags-nofma).
This commit is contained in:
Joseph Myers 2015-09-24 16:48:32 +00:00
parent 24ffcbfc24
commit 51df260506
3 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2015-09-24 Joseph Myers <joseph@codesourcery.com>
[BZ #19003]
* sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-e_pow-fma4.c): Add
$(config-cflags-nofma).
2015-09-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
* sysdeps/aarch64/libm-test-ulps: Regenerated.

2
NEWS
View File

@ -16,7 +16,7 @@ Version 2.23
18647, 18661, 18674, 18675, 18681, 18757, 18778, 18781, 18787, 18789,
18790, 18795, 18796, 18820, 18823, 18824, 18857, 18863, 18870, 18872,
18873, 18875, 18887, 18921, 18951, 18952, 18961, 18966, 18967, 18970,
18977, 18980, 18981.
18977, 18980, 18981, 19003.
* The obsolete header <regexp.h> has been removed. Programs that require
this header must be updated to use <regex.h> instead.

View File

@ -16,7 +16,7 @@ CFLAGS-e_asin-fma4.c = -mfma4
CFLAGS-e_atan2-fma4.c = -mfma4
CFLAGS-e_exp-fma4.c = -mfma4
CFLAGS-e_log-fma4.c = -mfma4
CFLAGS-e_pow-fma4.c = -mfma4
CFLAGS-e_pow-fma4.c = -mfma4 $(config-cflags-nofma)
CFLAGS-halfulp-fma4.c = -mfma4
CFLAGS-mpa-fma4.c = -mfma4
CFLAGS-mpatan-fma4.c = -mfma4