aboutsummaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-02-12 23:05:37 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-02-12 23:05:37 +0000
commite8bd5286c68bc35be3b41e94c15c4387dcb3bec9 (patch)
treec62c20ff732d5a7955bf3eaeb73454c4a61bb92d /NEWS
parent96a157490c8db4c3be4495c4f9c0ca9ecaf5ae7c (diff)
downloadglibc-e8bd5286c68bc35be3b41e94c15c4387dcb3bec9.zip
glibc-e8bd5286c68bc35be3b41e94c15c4387dcb3bec9.tar.gz
glibc-e8bd5286c68bc35be3b41e94c15c4387dcb3bec9.tar.bz2
Fix powerpc software sqrt (bug 17964).
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.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS2
1 files changed, 1 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 37e17ad..11ca36b 100644
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.22
* The following bugs are resolved with this release:
- 4719, 15467, 15790, 16560, 17912, 17932, 17944, 17949, 17965.
+ 4719, 15467, 15790, 16560, 17912, 17932, 17944, 17949, 17964, 17965.
Version 2.21