glibc/sysdeps/powerpc/fpu
Joseph Myers 95c26233a1 Fix powerpc software sqrtf (bug 17967).
Similarly to sqrt in
<https://sourceware.org/ml/libc-alpha/2015-02/msg00353.html>, the
powerpc sqrtf implementation for when _ARCH_PPCSQ is not defined also
relies on a * b + c being contracted into a fused multiply-add.
Although this contraction is not explicitly disabled for e_sqrtf.c, it
still seems appropriate to make the file explicit about its
requirements by using __builtin_fmaf; this patch does so.
Furthermore, it turns out that doing so fixes the observed inaccuracy
and missing exceptions (that is, that without explicit __builtin_fmaf
usage, it was not being compiled as intended).

Tested for powerpc32 (hard float).

	[BZ #17967]
	* sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Use
	__builtin_fmaf instead of relying on contraction of a * b + c.
2015-02-13 16:20:36 +00:00
..
e_hypot.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
e_hypotf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
e_rem_pio2f.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
e_sqrt.c Fix powerpc software sqrt (bug 17964). 2015-02-12 23:05:37 +00:00
e_sqrtf.c Fix powerpc software sqrtf (bug 17967). 2015-02-13 16:20:36 +00:00
fclrexcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fe_mask.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fe_nomask.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fegetenv.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fegetexcept.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fegetround.c Fix libm fegetround namespace (bug 17748). 2015-01-02 20:44:42 +00:00
feholdexcpt.c Fix libm feholdexcept namespace (bug 17748). 2015-01-05 23:06:14 +00:00
fenv_const.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fenv_libc.h Fix libm fesetround namespace (bug 17748). 2015-01-07 00:41:23 +00:00
fenv_private.h Fix libm fesetround namespace (bug 17748). 2015-01-07 00:41:23 +00:00
fesetenv.c Fix libm fesetenv namespace (bug 17748). 2015-01-06 23:36:20 +00:00
fesetround.c Fix libm fesetround namespace (bug 17748). 2015-01-07 00:41:23 +00:00
feupdateenv.c Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fsetexcptflg.c powerpc: Fix fesetexceptflag [BZ#17885] 2015-01-28 05:59:21 -05:00
ftestexcept.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
k_cosf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
k_rem_pio2f.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
k_sinf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
libm-test-ulps Update powerpc-fpu ULPs. 2014-06-30 17:38:43 -04:00
Makefile Link extra-libs consistently with libc and ld.so. 2013-05-31 16:16:33 +00:00
math_ldbl.h PowerPC: unify math_ldbl.h implementations 2013-03-08 11:07:15 -03:00
math_private.h powerpc: Fix fsqrt build in libm [BZ#16576] 2015-01-28 05:59:16 -05:00
s_cosf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fabs.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fabsf.S Update. 1999-10-10 00:00:36 +00:00
s_fdim.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fdimf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_float_bitwise.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fma.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fmaf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fmax.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fmaxf.S Update. 1999-10-10 00:00:36 +00:00
s_fmin.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fminf.S Update. 1999-10-10 00:00:36 +00:00
s_isnan.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_isnanf.S Update. 1999-10-10 00:00:36 +00:00
s_llround.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_llroundf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_lrintf.S Update. 1999-10-10 00:00:36 +00:00
s_rint.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_rintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_sinf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
t_sqrt.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
tst-setcontext-fpscr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00