diff options
author | Paul Clarke <pc@us.ibm.com> | 2019-02-04 19:16:50 -0600 |
---|---|---|
committer | Gabriel F. T. Gomes <gabriel@inconstante.eti.br> | 2019-02-11 12:03:23 -0200 |
commit | a51bc4fe9da9f2b97877beb6692f7043f6c14a16 (patch) | |
tree | a64960fa4e31858e5d96bc9d7e943cd105212c6e | |
parent | fb25b1356ae6a0b2d27a307091ad4f384814cc77 (diff) | |
download | glibc-a51bc4fe9da9f2b97877beb6692f7043f6c14a16.tar.gz |
Use float in e_sqrt.c
The type used within e_sqrt.c(__slow_ieee754_sqrtf) was, unnecessarily and
likely inadvertently, double. float is not only appropriate, but also
more efficient, avoiding the need for the compiler to emit a
round-to-single-precision instruction.
This is the difference in compiled code:
0000000000000000 <__ieee754_sqrtf>:
0: 2c 08 20 ec fsqrts f1,f1
- 4: 18 08 20 fc frsp f1,f1
- 8: 20 00 80 4e blr
+ 4: 20 00 80 4e blr
(Found by Anton Blanchard.)
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/e_sqrtf.c | 2 |
2 files changed, 6 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2019-02-11 Paul A. Clarke <pc@us.ibm.com> + + * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrtf): + Use float instead of double. + 2019-02-11 TAMUKI Shoichi <tamuki@linet.gr.jp> * time/strftime_l.c: Fix a few whitespace arrangement inconsistencies. diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c index 65df94bb80..5d9e900005 100644 --- a/sysdeps/powerpc/fpu/e_sqrtf.c +++ b/sysdeps/powerpc/fpu/e_sqrtf.c @@ -138,7 +138,7 @@ __slow_ieee754_sqrtf (float x) float __ieee754_sqrtf (float x) { - double z; + float z; #ifdef _ARCH_PPCSQ asm ("fsqrts %0,%1\n" :"=f" (z):"f" (x)); |