summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-02-12 23:05:37 +0000
committerAurelien Jarno <aurelien@aurel32.net>2017-02-20 22:04:52 +0100
commit0a62a5c401cf5b4e79e8290e46ce36f4c6dd08da (patch)
treed0a47ee621f3d5c49e13137cf23ca670b1786ca9 /ChangeLog
parenta0b2d5b252477b6bc374390c14c3c8ed6aae420c (diff)
downloadglibc-release/2.19/master.tar.gz
Fix powerpc software sqrt (bug 17964).release/2.19/master
As Adhemerval noted in <https://sourceware.org/ml/libc-alpha/2015-01/msg00451.html>, the powerpc sqrt implementation for when _ARCH_PPCSQ is not defined is inaccurate in some cases. The problem is that this code relies on fused multiply-add, and relies on the compiler contracting a * b + c to get a fused operation. But sysdeps/ieee754/dbl-64/Makefile disables contraction for e_sqrt.c, because the implementation in that directory relies on *not* having contracted operations. While it would be possible to arrange makefiles so that an earlier sysdeps directory can disable the setting in sysdeps/ieee754/dbl-64/Makefile, it seems a lot cleaner to make the dependence on fused operations explicit in the .c file. GCC 4.6 introduced support for __builtin_fma on powerpc and other architectures with such instructions, so we can rely on that; this patch duly makes the code use __builtin_fma for all such fused operations. Tested for powerpc32 (hard float). 2015-02-12 Joseph Myers <joseph@codesourcery.com> [BZ #17964] * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Use __builtin_fma instead of relying on contraction of a * b + c. (cherry picked from commit e8bd5286c68bc35be3b41e94c15c4387dcb3bec9)
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog6
1 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 92b8a2e35c..a81d6234a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-12 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #17964]
+ * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Use
+ __builtin_fma instead of relying on contraction of a * b + c.
+
2015-01-28 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
[BZ #16576]