diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-09-24 16:48:32 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-09-24 16:48:32 +0000 |
commit | 51df2605064a2bfd44fa0655ef9815812347de80 (patch) | |
tree | a0abf7172d01f3766a34ccea0dbb5ea85703c42a | |
parent | 24ffcbfc24e08212cc5b1fa8318940e75b06313c (diff) | |
download | glibc-51df2605064a2bfd44fa0655ef9815812347de80.zip glibc-51df2605064a2bfd44fa0655ef9815812347de80.tar.gz glibc-51df2605064a2bfd44fa0655ef9815812347de80.tar.bz2 |
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).
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/Makefile | 2 |
3 files changed, 8 insertions, 2 deletions
@@ -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. @@ -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. diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile index 86ea473..631534a 100644 --- a/sysdeps/x86_64/fpu/multiarch/Makefile +++ b/sysdeps/x86_64/fpu/multiarch/Makefile @@ -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 |