This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [powerpc] Use float in e_sqrt.c



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));
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]