mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
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.)
This commit is contained in:
parent
fb25b1356a
commit
a51bc4fe9d
@ -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.
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user