This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] [powerpc] Use float in e_sqrt.c
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 5 Feb 2019 11:11:26 -0200
- Subject: Re: [PATCH] [powerpc] Use float in e_sqrt.c
- References: <8e1e3e59-26a6-b1cd-812e-b273b2c883ad@us.ibm.com>
On 04/02/2019 23:16, Paul Clarke wrote:
> 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.)
>
> 2019-02-04 Paul A. Clarke <pc@us.ibm.com>
>
> * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrtf):
> Use float instead of double.
LGTM, thanks.
> ---
> sysdeps/powerpc/fpu/e_sqrtf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c
> index 65df94b..5d9e900 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));
>