On 01/06/2020 21:35, Vineet Gupta wrote: > Reviewed-by: Adhemerval Zanella <adhemerval.zanella@xxxxxxxxxx> LGTM with the small nit below and the s390 fix pointed by Stefan. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@xxxxxxxxxx> > --- > sysdeps/generic/math-use-builtins.h | 3 +++ > sysdeps/ieee754/dbl-64/e_sqrt.c | 6 ++++++ > sysdeps/ieee754/flt-32/e_sqrtf.c | 16 ++++++++++------ > 3 files changed, 19 insertions(+), 6 deletions(-) > > diff --git a/sysdeps/generic/math-use-builtins.h b/sysdeps/generic/math-use-builtins.h > index 8a39ef58bc95..fc724c824a17 100644 > --- a/sysdeps/generic/math-use-builtins.h > +++ b/sysdeps/generic/math-use-builtins.h > @@ -60,4 +60,7 @@ > # define USE_COPYSIGNF128_BUILTIN 0 > #endif > > +#define USE_SQRT_BUILTIN 0 > +#define USE_SQRTF_BUILTIN 0 > + > #endif /* math-use-builtins.h */ Ok. > diff --git a/sysdeps/ieee754/dbl-64/e_sqrt.c b/sysdeps/ieee754/dbl-64/e_sqrt.c > index d42a1a4eb6e9..518a8ae5cdaf 100644 > --- a/sysdeps/ieee754/dbl-64/e_sqrt.c > +++ b/sysdeps/ieee754/dbl-64/e_sqrt.c > @@ -41,6 +41,7 @@ > #include <math_private.h> > #include <fenv_private.h> > #include <libm-alias-finite.h> > +#include <math-use-builtins.h> > > /*********************************************************************/ > /* An ultimate sqrt routine. Given an IEEE double machine number x */ > @@ -50,6 +51,10 @@ > double > __ieee754_sqrt (double x) > { > +#if USE_SQRT_BUILTIN > + return __builtin_sqrt (x); > +#else > + /* Use generic implementation. */ > static const double > rt0 = 9.99999999859990725855365213134618E-01, > rt1 = 4.99999999495955425917856814202739E-01, > @@ -138,6 +143,7 @@ __ieee754_sqrt (double x) > return (x - x) / (x - x); /* sqrt(-ve)=sNaN */ > return 0x1p-256 * __ieee754_sqrt (x * 0x1p512); > } > +#endif /* ! USE_SQRT_BUILTIN */ > } > #ifndef __ieee754_sqrt > libm_alias_finite (__ieee754_sqrt, __sqrt) Ok. > diff --git a/sysdeps/ieee754/flt-32/e_sqrtf.c b/sysdeps/ieee754/flt-32/e_sqrtf.c > index b339444301aa..d85a04162983 100644 > --- a/sysdeps/ieee754/flt-32/e_sqrtf.c > +++ b/sysdeps/ieee754/flt-32/e_sqrtf.c > @@ -16,12 +16,15 @@ > #include <math.h> > #include <math_private.h> > #include <libm-alias-finite.h> > - > -static const float one = 1.0, tiny=1.0e-30; > +#include <math-use-builtins.h> > > float > __ieee754_sqrtf(float x) > { > +#if USE_SQRTF_BUILTIN > + return __builtin_sqrtf (x); > +#else > + /* Use generic implementation. */ > float z; > int32_t sign = (int)0x80000000; > int32_t ix,s,q,m,t,i; > @@ -70,10 +73,10 @@ __ieee754_sqrtf(float x) > > /* use floating add to find out rounding direction */ > if(ix!=0) { > - z = one-tiny; /* trigger inexact flag */ > - if (z>=one) { > - z = one+tiny; > - if (z>one) > + z = 0x1p0 - 0x1.4484cp-100; /* trigger inexact flag */ Period and double space before '*/'. > + if (z >= 0x1p0) { > + z = 0x1p0 + 0x1.4484cp-100; > + if (z > 0x1p0) > q += 2; > else > q += (q&1); > @@ -83,6 +86,7 @@ __ieee754_sqrtf(float x) > ix += (m <<23); > SET_FLOAT_WORD(z,ix); > return z; > +#endif /* ! USE_SQRTF_BUILTIN */ > } > #ifndef __ieee754_sqrtf > libm_alias_finite (__ieee754_sqrtf, __sqrtf) > Ok. _______________________________________________ linux-snps-arc mailing list linux-snps-arc@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-snps-arc