]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix x86_64 fma4 pow inappropriate contraction (bug 19003).
authorJoseph Myers <joseph@codesourcery.com>
Thu, 24 Sep 2015 16:48:32 +0000 (16:48 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 24 Sep 2015 16:48:32 +0000 (16:48 +0000)
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).

ChangeLog
NEWS
sysdeps/x86_64/fpu/multiarch/Makefile

index c900f20e89dd74628fcdafdf20f31d4f336d8287..df079ca412d5963048d93903c41f41af4f459b65 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index bf16f4f8bae037686be9750c21666ea63d4d5084..b06a8265216dc7b21ee950bc185fc7ae1ad8fc2e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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.
index 86ea473b4ff9f1fef0bd5a85689ded79dc67a9f3..631534a5ce0d9eecf42a9d5c93d53b5b5c0cfe3d 100644 (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