This is the mail archive of the glibc-cvs@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]

GNU C Library master sources branch master updated. glibc-2.27.9000-204-g700593f


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  700593fdd7aef1e36cfa8bad969faab76a6facda (commit)
       via  f67a8147b0ac274655c6c5c3b4c8bcb02be5745b (commit)
       via  1294b1892e19d70e9e4dca0a2f3e39497f262a42 (commit)
      from  c429a8d8d63a12cac9754834f3a2667f7dbdb0fb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=700593fdd7aef1e36cfa8bad969faab76a6facda

commit 700593fdd7aef1e36cfa8bad969faab76a6facda
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Thu Mar 15 18:21:58 2018 +0000

    Remove all target specific __ieee754_sqrt(f/l) inlines
    
    Remove the now unused target specific__ieee754_sqrt(f/l) inlines.
    Also remove inlines of sqrt which are for really old GCC versions.
    Removing these is desirable, under the general principle of leaving
    such inlining to the compiler rather than trying to do it in installed
    headers, especially when only very old compilers are affected.
    
    Note that removing inlines for __ieee754_sqrt disables inlining in the
    sqrt wrapper functions.  Given the sqrt function will typically only be
    called for negative arguments, it doesn't matter whether the inlining
    happens or not.
    
    	* sysdeps/aarch64/fpu/math_private.h (__ieee754_sqrt): Remove.
    	(__ieee754_sqrtf): Remove.
    	* sysdeps/alpha/fpu/math_private.h (__ieee754_sqrt): Remove.
    	(__ieee754_sqrtf): Remove.
    	* sysdeps/generic/math-type-macros.h (M_SQRT): Use sqrt.
    	* sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
    	* sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrt): Remove.
    	(__ieee754_sqrtf): Remove.
    	* sysdeps/s390/fpu/bits/mathinline.h: Remove file.
    	* sysdeps/sparc/fpu/bits/mathinline.h (sqrt) Remove.
    	(sqrtf): Remove.
    	(sqrtl): Remove.
    	(__ieee754_sqrt): Remove.
    	(__ieee754_sqrtf): Remove.
    	(__ieee754_sqrtl): Remove.
    	* sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
    	* sysdeps/x86/fpu/math_private.h (__ieee754_sqrt): Remove.
    	* sysdeps/x86_64/fpu/math_private.h (__ieee754_sqrt): Remove.
    	(__ieee754_sqrtf): Remove.
    	(__ieee754_sqrtl): Remove.

diff --git a/ChangeLog b/ChangeLog
index d026c4d..9d0fb17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,29 @@
 
 2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>
 
+	* sysdeps/aarch64/fpu/math_private.h (__ieee754_sqrt): Remove.
+	(__ieee754_sqrtf): Remove.
+	* sysdeps/alpha/fpu/math_private.h (__ieee754_sqrt): Remove.
+	(__ieee754_sqrtf): Remove.
+	* sysdeps/generic/math-type-macros.h (M_SQRT): Use sqrt.
+	* sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
+	* sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrt): Remove.
+	(__ieee754_sqrtf): Remove.
+	* sysdeps/s390/fpu/bits/mathinline.h: Remove file.
+	* sysdeps/sparc/fpu/bits/mathinline.h (sqrt) Remove.
+	(sqrtf): Remove.
+	(sqrtl): Remove.
+	(__ieee754_sqrt): Remove.
+	(__ieee754_sqrtf): Remove.
+	(__ieee754_sqrtl): Remove.
+	* sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
+	* sysdeps/x86/fpu/math_private.h (__ieee754_sqrt): Remove.
+	* sysdeps/x86_64/fpu/math_private.h (__ieee754_sqrt): Remove.
+	(__ieee754_sqrtf): Remove.
+	(__ieee754_sqrtl): Remove.
+
+2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>
+
 	* sysdeps/ieee754/dbl-64/e_acosh.c (__ieee754_acosh): Use sqrt.
 	* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Likewise.
 	* sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Likewise.
diff --git a/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h
index 3eea86e..d9c2d71 100644
--- a/sysdeps/aarch64/fpu/math_private.h
+++ b/sysdeps/aarch64/fpu/math_private.h
@@ -27,22 +27,6 @@
 #define math_force_eval(x) \
 ({ __typeof (x) __x = (x); __asm __volatile__ ("" : : "w" (__x)); })
 
-extern __always_inline double
-__ieee754_sqrt (double d)
-{
-  double res;
-  asm __volatile__ ("fsqrt   %d0, %d1" : "=w" (res) : "w" (d));
-  return res;
-}
-
-extern __always_inline float
-__ieee754_sqrtf (float s)
-{
-  float res;
-  asm __volatile__ ("fsqrt   %s0, %s1" : "=w" (res) : "w" (s));
-  return res;
-}
-
 static __always_inline void
 libc_feholdexcept_aarch64 (fenv_t *envp)
 {
diff --git a/sysdeps/alpha/fpu/math_private.h b/sysdeps/alpha/fpu/math_private.h
index 1e97c86..95dc32c 100644
--- a/sysdeps/alpha/fpu/math_private.h
+++ b/sysdeps/alpha/fpu/math_private.h
@@ -21,30 +21,4 @@
 
 #include_next <math_private.h>
 
-#ifdef __alpha_fix__
-extern __always_inline double
-__ieee754_sqrt (double d)
-{
-  double ret;
-# ifdef _IEEE_FP_INEXACT
-  asm ("sqrtt/suid %1,%0" : "=&f"(ret) : "f"(d));
-# else
-  asm ("sqrtt/sud %1,%0" : "=&f"(ret) : "f"(d));
-# endif
-  return ret;
-}
-
-extern __always_inline float
-__ieee754_sqrtf (float d)
-{
-  float ret;
-# ifdef _IEEE_FP_INEXACT
-  asm ("sqrts/suid %1,%0" : "=&f"(ret) : "f"(d));
-# else
-  asm ("sqrts/sud %1,%0" : "=&f"(ret) : "f"(d));
-# endif
-  return ret;
-}
-#endif /* FIX */
-
 #endif /* ALPHA_MATH_PRIVATE_H */
diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h
index 8ceaa4e..ffcf7b8 100644
--- a/sysdeps/generic/math-type-macros.h
+++ b/sysdeps/generic/math-type-macros.h
@@ -91,7 +91,7 @@
 #define M_HYPOT M_SUF (__ieee754_hypot)
 #define M_LOG M_SUF (__ieee754_log)
 #define M_SINH M_SUF (__ieee754_sinh)
-#define M_SQRT M_SUF (__ieee754_sqrt)
+#define M_SQRT M_SUF (sqrt)
 
 /* Needed to evaluate M_MANT_DIG below.  */
 #include <float.h>
diff --git a/sysdeps/m68k/m680x0/fpu/mathimpl.h b/sysdeps/m68k/m680x0/fpu/mathimpl.h
index 848f9cf..d39094c 100644
--- a/sysdeps/m68k/m680x0/fpu/mathimpl.h
+++ b/sysdeps/m68k/m680x0/fpu/mathimpl.h
@@ -30,7 +30,6 @@ __inline_mathop	(__ieee754_exp10, tentox,)
 __inline_mathop	(__ieee754_log10, log10,)
 __inline_mathop	(__ieee754_log2, log2,)
 __inline_mathop	(__ieee754_log, logn,)
-__inline_mathop	(__ieee754_sqrt, sqrt,)
 __inline_mathop	(__ieee754_atanh, atanh,)
 
 __m81_defun (double, __ieee754_remainder, (double __x, double __y),)
diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h
index 4d1e571..b9fc721 100644
--- a/sysdeps/powerpc/fpu/math_private.h
+++ b/sysdeps/powerpc/fpu/math_private.h
@@ -42,36 +42,6 @@ __ieee754_sqrtf128 (_Float128 __x)
 }
 #endif
 
-extern double __slow_ieee754_sqrt (double);
-extern __always_inline double
-__ieee754_sqrt (double __x)
-{
-  double __z;
-
-#ifdef _ARCH_PPCSQ
-   asm ("fsqrt	%0,%1" : "=f" (__z) : "f" (__x));
-#else
-   __z = __slow_ieee754_sqrt(__x);
-#endif
-
-  return __z;
-}
-
-extern float __slow_ieee754_sqrtf (float);
-extern __always_inline float
-__ieee754_sqrtf (float __x)
-{
-  float __z;
-
-#ifdef _ARCH_PPCSQ
-  asm ("fsqrts	%0,%1" : "=f" (__z) : "f" (__x));
-#else
-   __z = __slow_ieee754_sqrtf(__x);
-#endif
-
-  return __z;
-}
-
 #if defined _ARCH_PWR5X
 
 # ifndef __round
diff --git a/sysdeps/s390/fpu/bits/mathinline.h b/sysdeps/s390/fpu/bits/mathinline.h
deleted file mode 100644
index 83ce6fa..0000000
--- a/sysdeps/s390/fpu/bits/mathinline.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Inline math functions for s390.
-   Copyright (C) 2004-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _MATH_H
-# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-#endif
-
-#ifndef __extern_inline
-# define __MATH_INLINE __inline
-#else
-# define __MATH_INLINE __extern_inline
-#endif
-
-#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
-    && defined __OPTIMIZE__
-
-/* This code is used internally in the GNU libc.  */
-#ifdef __LIBC_INTERNAL_MATH_INLINES
-
-__MATH_INLINE double
-__NTH (__ieee754_sqrt (double x))
-{
-  double res;
-
-  __asm__ ( "sqdbr %0,%1" : "=f" (res) : "f" (x) );
-  return res;
-}
-
-__MATH_INLINE float
-__NTH (__ieee754_sqrtf (float x))
-{
-  float res;
-
-  __asm__ ( "sqebr %0,%1" : "=f" (res) : "f" (x) );
-  return res;
-}
-
-# if !defined __NO_LONG_DOUBLE_MATH
-__MATH_INLINE long double
-__NTH (sqrtl (long double __x))
-{
-  long double res;
-
-  __asm__ ( "sqxbr %0,%1" : "=f" (res) : "f" (__x) );
-  return res;
-}
-# endif /* !__NO_LONG_DOUBLE_MATH */
-
-#endif /* __LIBC_INTERNAL_MATH_INLINES */
-
-#endif /* __NO_MATH_INLINES */
diff --git a/sysdeps/sparc/fpu/bits/mathinline.h b/sysdeps/sparc/fpu/bits/mathinline.h
index 5940a1d..f6118c7 100644
--- a/sysdeps/sparc/fpu/bits/mathinline.h
+++ b/sysdeps/sparc/fpu/bits/mathinline.h
@@ -33,86 +33,6 @@
 #  define __MATH_INLINE __extern_inline
 # endif  /* __cplusplus */
 
-/* The gcc, version 2.7 or below, has problems with all this inlining
-   code.  So disable it for this version of the compiler.  */
-# if __GNUC_PREREQ (2, 8)
-
-#  if !defined __NO_MATH_INLINES && !__GNUC_PREREQ (3, 2)
-
-__MATH_INLINE double
-__NTH (sqrt (double __x))
-{
-  register double __r;
-  __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x));
-  return __r;
-}
-
-__MATH_INLINE float
-__NTH (sqrtf (float __x))
-{
-  register float __r;
-  __asm ("fsqrts %1,%0" : "=f" (__r) : "f" (__x));
-  return __r;
-}
-
-#   if __WORDSIZE == 64
-__MATH_INLINE long double
-__NTH (sqrtl (long double __x))
-{
-  long double __r;
-  extern void _Qp_sqrt (long double *, const long double *);
-  _Qp_sqrt (&__r, &__x);
-  return __r;
-}
-#   elif !defined __NO_LONG_DOUBLE_MATH
-__MATH_INLINE long double
-sqrtl (long double __x) __THROW
-{
-  extern long double _Q_sqrt (const long double);
-  return _Q_sqrt (__x);
-}
-#   endif /* sparc64 */
-
-#  endif /* !__NO_MATH_INLINES && !GCC 3.2+ */
-
-/* This code is used internally in the GNU libc.  */
-#  ifdef __LIBC_INTERNAL_MATH_INLINES
-__MATH_INLINE double
-__ieee754_sqrt (double __x)
-{
-  register double __r;
-  __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x));
-  return __r;
-}
-
-__MATH_INLINE float
-__ieee754_sqrtf (float __x)
-{
-  register float __r;
-  __asm ("fsqrts %1,%0" : "=f" (__r) : "f" (__x));
-  return __r;
-}
-
-#   if __WORDSIZE == 64
-__MATH_INLINE long double
-__ieee754_sqrtl (long double __x)
-{
-  long double __r;
-  extern void _Qp_sqrt (long double *, const long double *);
-  _Qp_sqrt(&__r, &__x);
-  return __r;
-}
-#   elif !defined __NO_LONG_DOUBLE_MATH
-__MATH_INLINE long double
-__ieee754_sqrtl (long double __x)
-{
-  extern long double _Q_sqrt (const long double);
-  return _Q_sqrt (__x);
-}
-#   endif /* sparc64 */
-#  endif /* __LIBC_INTERNAL_MATH_INLINES */
-# endif /* gcc 2.8+ */
-
 # ifdef __USE_ISOC99
 
 #  ifndef __NO_MATH_INLINES
diff --git a/sysdeps/x86/fpu/bits/mathinline.h b/sysdeps/x86/fpu/bits/mathinline.h
index d475e16..d7fa384 100644
--- a/sysdeps/x86/fpu/bits/mathinline.h
+++ b/sysdeps/x86/fpu/bits/mathinline.h
@@ -330,7 +330,6 @@ __NTH (__finite (double __x))
 
 /* This code is used internally in the GNU libc.  */
 # ifdef __LIBC_INTERNAL_MATH_INLINES
-__inline_mathop (__ieee754_sqrt, "fsqrt")
 __inline_mathcode2_ (long double, __ieee754_atan2l, __y, __x,
 		     register long double __value;
 		     __asm __volatile__ ("fpatan\n\t"
diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h
index 027a6a3..1305289 100644
--- a/sysdeps/x86_64/fpu/math_private.h
+++ b/sysdeps/x86_64/fpu/math_private.h
@@ -48,38 +48,6 @@
 #include <sysdeps/i386/fpu/fenv_private.h>
 #include_next <math_private.h>
 
-extern __always_inline double
-__ieee754_sqrt (double d)
-{
-  double res;
-#if defined __AVX__ || defined SSE2AVX
-  asm ("vsqrtsd %1, %0, %0" : "=x" (res) : "xm" (d));
-#else
-  asm ("sqrtsd %1, %0" : "=x" (res) : "xm" (d));
-#endif
-  return res;
-}
-
-extern __always_inline float
-__ieee754_sqrtf (float d)
-{
-  float res;
-#if defined __AVX__ || defined SSE2AVX
-  asm ("vsqrtss %1, %0, %0" : "=x" (res) : "xm" (d));
-#else
-  asm ("sqrtss %1, %0" : "=x" (res) : "xm" (d));
-#endif
-  return res;
-}
-
-extern __always_inline long double
-__ieee754_sqrtl (long double d)
-{
-  long double res;
-  asm ("fsqrt" : "=t" (res) : "0" (d));
-  return res;
-}
-
 #ifdef __SSE4_1__
 extern __always_inline double
 __rint (double d)

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f67a8147b0ac274655c6c5c3b4c8bcb02be5745b

commit f67a8147b0ac274655c6c5c3b4c8bcb02be5745b
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Thu Mar 15 18:05:03 2018 +0000

    Rename all __ieee754_sqrt(f/l) calls to sqrt(f/l)
    
    Use sqrt(f/l) to enable inlining by GCC - if inlining doesn't happen,
    the asm redirect ensures we will still call __ieee754_sqrt(f/l).
    
    	* sysdeps/ieee754/dbl-64/e_acosh.c (__ieee754_acosh): Use sqrt.
    	* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Likewise.
    	* sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Likewise.
    	* sysdeps/ieee754/dbl-64/e_j0.c (__ieee754_j0): Likewise.
    	* sysdeps/ieee754/dbl-64/e_j1.c (__ieee754_j1): Likewise.
    	* sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
    	* sysdeps/ieee754/dbl-64/s_asinh.c (__asinh): Likewise.
    	* sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c (__ieee754_acosh): Likewise.
    	* sysdeps/ieee754/flt-32/e_acosf.c (__ieee754_acosf): Likewise.
    	* sysdeps/ieee754/flt-32/e_acoshf.c (__ieee754_acoshf): Likewise.
    	* sysdeps/ieee754/flt-32/e_asinf.c (__ieee754_asinf): Likewise.
    	* sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Likewise.
    	* sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Likewise.
    	* sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_j0f): Likewise.
    	* sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_j1f): Likewise.
    	* sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Likewise.
    	* sysdeps/ieee754/flt-32/s_asinhf.c (__asinhf): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
    	* sysdeps/ieee754/ldbl-128/e_acosl.c (__ieee754_acosl): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_asinl.c (__ieee754_asinl): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
    	* sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Likewise.
    	* sysdeps/ieee754/ldbl-128/s_asinhl.c (__ieee754_asinhl): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_j0l.c (__ieee754_j0l): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_j1l.c (__ieee754_j1l): Likewise
    	* sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
    	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__ieee754_asinhl): Likewise.
    	* sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
    	* sysdeps/ieee754/ldbl-96/e_asinl.c (__ieee754_asinl): Likewise.
    	* sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Likewise.
    	* sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
    	* sysdeps/ieee754/ldbl-96/e_j0l.c (__ieee754_j0l): Likewise.
    	* sysdeps/ieee754/ldbl-96/e_j1l.c (__ieee754_j1l): Likewise.
    	* sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
    	* sysdeps/ieee754/ldbl-96/s_asinhl.c (__ieee754_asinhl): Likewise.
    	* sysdeps/m68k/m680x0/fpu/e_pow.c (__ieee754_pow): Likewise.
    	* sysdeps/powerpc/fpu/e_hypot.c (__ieee754_hypot): Likewise.
    	* sysdeps/powerpc/fpu/e_hypotf.c (__ieee754_hypotf): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 1a497ea..d026c4d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,58 @@
 
 2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>
 
+	* sysdeps/ieee754/dbl-64/e_acosh.c (__ieee754_acosh): Use sqrt.
+	* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Likewise.
+	* sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Likewise.
+	* sysdeps/ieee754/dbl-64/e_j0.c (__ieee754_j0): Likewise.
+	* sysdeps/ieee754/dbl-64/e_j1.c (__ieee754_j1): Likewise.
+	* sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
+	* sysdeps/ieee754/dbl-64/s_asinh.c (__asinh): Likewise.
+	* sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c (__ieee754_acosh):
+	Likewise.
+	* sysdeps/ieee754/flt-32/e_acosf.c (__ieee754_acosf): Likewise.
+	* sysdeps/ieee754/flt-32/e_acoshf.c (__ieee754_acoshf): Likewise.
+	* sysdeps/ieee754/flt-32/e_asinf.c (__ieee754_asinf): Likewise.
+	* sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Likewise.
+	* sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Likewise.
+	* sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_j0f): Likewise.
+	* sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_j1f): Likewise.
+	* sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Likewise.
+	* sysdeps/ieee754/flt-32/s_asinhf.c (__asinhf): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
+	* sysdeps/ieee754/ldbl-128/e_acosl.c (__ieee754_acosl): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_asinl.c (__ieee754_asinl): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
+	* sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Likewise.
+	* sysdeps/ieee754/ldbl-128/s_asinhl.c (__ieee754_asinhl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_j0l.c (__ieee754_j0l): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_j1l.c (__ieee754_j1l): Likewise
+	* sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__ieee754_asinhl): Likewise.
+	* sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
+	* sysdeps/ieee754/ldbl-96/e_asinl.c (__ieee754_asinl): Likewise.
+	* sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Likewise.
+	* sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
+	* sysdeps/ieee754/ldbl-96/e_j0l.c (__ieee754_j0l): Likewise.
+	* sysdeps/ieee754/ldbl-96/e_j1l.c (__ieee754_j1l): Likewise.
+	* sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
+	* sysdeps/ieee754/ldbl-96/s_asinhl.c (__ieee754_asinhl): Likewise.
+	* sysdeps/m68k/m680x0/fpu/e_pow.c (__ieee754_pow): Likewise.
+	* sysdeps/powerpc/fpu/e_hypot.c (__ieee754_hypot): Likewise.
+	* sysdeps/powerpc/fpu/e_hypotf.c (__ieee754_hypotf): Likewise.
+
+2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>
+
 	* include/math.h (sqrt): Declare with asm redirect.
 	(sqrtf): Likewise.
 	(sqrtl): Likewise.
diff --git a/sysdeps/ieee754/dbl-64/e_acosh.c b/sysdeps/ieee754/dbl-64/e_acosh.c
index 51916f2..fe0c375 100644
--- a/sysdeps/ieee754/dbl-64/e_acosh.c
+++ b/sysdeps/ieee754/dbl-64/e_acosh.c
@@ -58,12 +58,12 @@ __ieee754_acosh (double x)
   else if (hx > 0x40000000)             /* 2**28 > x > 2 */
     {
       t = x * x;
-      return __ieee754_log (2.0 * x - one / (x + __ieee754_sqrt (t - one)));
+      return __ieee754_log (2.0 * x - one / (x + sqrt (t - one)));
     }
   else                                  /* 1<x<2 */
     {
       t = x - one;
-      return __log1p (t + __ieee754_sqrt (2.0 * t + t * t));
+      return __log1p (t + sqrt (2.0 * t + t * t));
     }
 }
 strong_alias (__ieee754_acosh, __acosh_finite)
diff --git a/sysdeps/ieee754/dbl-64/e_gamma_r.c b/sysdeps/ieee754/dbl-64/e_gamma_r.c
index e6dbf0c..ac7fe2e 100644
--- a/sysdeps/ieee754/dbl-64/e_gamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_gamma_r.c
@@ -98,7 +98,7 @@ gamma_positive (double x, int *exp2_adj)
       double ret = (__ieee754_pow (x_adj_mant, x_adj)
 		    * __ieee754_exp2 (x_adj_log2 * x_adj_frac)
 		    * __ieee754_exp (-x_adj)
-		    * __ieee754_sqrt (2 * M_PI / x_adj)
+		    * sqrt (2 * M_PI / x_adj)
 		    / prod);
       exp_adj += x_eps * __ieee754_log (x_adj);
       double bsum = gamma_coeff[NCOEFF - 1];
diff --git a/sysdeps/ieee754/dbl-64/e_hypot.c b/sysdeps/ieee754/dbl-64/e_hypot.c
index 698f004..a890751 100644
--- a/sysdeps/ieee754/dbl-64/e_hypot.c
+++ b/sysdeps/ieee754/dbl-64/e_hypot.c
@@ -132,7 +132,7 @@ __ieee754_hypot (double x, double y)
       t1 = 0;
       SET_HIGH_WORD (t1, ha);
       t2 = a - t1;
-      w = __ieee754_sqrt (t1 * t1 - (b * (-b) - t2 * (a + t1)));
+      w = sqrt (t1 * t1 - (b * (-b) - t2 * (a + t1)));
     }
   else
     {
@@ -143,7 +143,7 @@ __ieee754_hypot (double x, double y)
       t1 = 0;
       SET_HIGH_WORD (t1, ha + 0x00100000);
       t2 = a - t1;
-      w = __ieee754_sqrt (t1 * y1 - (w * (-w) - (t1 * y2 + t2 * b)));
+      w = sqrt (t1 * y1 - (w * (-w) - (t1 * y2 + t2 * b)));
     }
   if (k != 0)
     {
diff --git a/sysdeps/ieee754/dbl-64/e_j0.c b/sysdeps/ieee754/dbl-64/e_j0.c
index 4b440cf..3794fd4 100644
--- a/sysdeps/ieee754/dbl-64/e_j0.c
+++ b/sysdeps/ieee754/dbl-64/e_j0.c
@@ -109,11 +109,11 @@ __ieee754_j0 (double x)
        * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
        */
       if (ix > 0x48000000)
-	z = (invsqrtpi * cc) / __ieee754_sqrt (x);
+	z = (invsqrtpi * cc) / sqrt (x);
       else
 	{
 	  u = pzero (x); v = qzero (x);
-	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrt (x);
+	  z = invsqrtpi * (u * cc - v * ss) / sqrt (x);
 	}
       return z;
     }
@@ -200,11 +200,11 @@ __ieee754_y0 (double x)
 	    ss = z / cc;
 	}
       if (ix > 0x48000000)
-	z = (invsqrtpi * ss) / __ieee754_sqrt (x);
+	z = (invsqrtpi * ss) / sqrt (x);
       else
 	{
 	  u = pzero (x); v = qzero (x);
-	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrt (x);
+	  z = invsqrtpi * (u * ss + v * cc) / sqrt (x);
 	}
       return z;
     }
diff --git a/sysdeps/ieee754/dbl-64/e_j1.c b/sysdeps/ieee754/dbl-64/e_j1.c
index eb446fd..b528998 100644
--- a/sysdeps/ieee754/dbl-64/e_j1.c
+++ b/sysdeps/ieee754/dbl-64/e_j1.c
@@ -112,11 +112,11 @@ __ieee754_j1 (double x)
        * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
        */
       if (ix > 0x48000000)
-	z = (invsqrtpi * cc) / __ieee754_sqrt (y);
+	z = (invsqrtpi * cc) / sqrt (y);
       else
 	{
 	  u = pone (y); v = qone (y);
-	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrt (y);
+	  z = invsqrtpi * (u * cc - v * ss) / sqrt (y);
 	}
       if (hx < 0)
 	return -z;
@@ -203,11 +203,11 @@ __ieee754_y1 (double x)
        * to compute the worse one.
        */
       if (ix > 0x48000000)
-	z = (invsqrtpi * ss) / __ieee754_sqrt (x);
+	z = (invsqrtpi * ss) / sqrt (x);
       else
 	{
 	  u = pone (x); v = qone (x);
-	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrt (x);
+	  z = invsqrtpi * (u * ss + v * cc) / sqrt (x);
 	}
       return z;
     }
diff --git a/sysdeps/ieee754/dbl-64/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c
index a244df0..12cc0d5 100644
--- a/sysdeps/ieee754/dbl-64/e_jn.c
+++ b/sysdeps/ieee754/dbl-64/e_jn.c
@@ -107,7 +107,7 @@ __ieee754_jn (int n, double x)
 	      case 2: temp = -c - s; break;
 	      case 3: temp = c - s; break;
 	      }
-	    b = invsqrtpi * temp / __ieee754_sqrt (x);
+	    b = invsqrtpi * temp / sqrt (x);
 	  }
 	else
 	  {
@@ -314,7 +314,7 @@ __ieee754_yn (int n, double x)
 	  case 2: temp = -s + c; break;
 	  case 3: temp = s + c; break;
 	  }
-	b = invsqrtpi * temp / __ieee754_sqrt (x);
+	b = invsqrtpi * temp / sqrt (x);
       }
     else
       {
diff --git a/sysdeps/ieee754/dbl-64/s_asinh.c b/sysdeps/ieee754/dbl-64/s_asinh.c
index 31f67e2..5577cce 100644
--- a/sysdeps/ieee754/dbl-64/s_asinh.c
+++ b/sysdeps/ieee754/dbl-64/s_asinh.c
@@ -55,13 +55,13 @@ __asinh (double x)
       double xa = fabs (x);
       if (ix > 0x40000000)              /* 2**28 > |x| > 2.0 */
 	{
-	  w = __ieee754_log (2.0 * xa + one / (__ieee754_sqrt (xa * xa + one) +
+	  w = __ieee754_log (2.0 * xa + one / (sqrt (xa * xa + one) +
               xa));
 	}
       else                      /* 2.0 > |x| > 2**-28 */
 	{
 	  double t = xa * xa;
-	  w = __log1p (xa + t / (one + __ieee754_sqrt (one + t)));
+	  w = __log1p (xa + t / (one + sqrt (one + t)));
 	}
     }
   return __copysign (w, x);
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c b/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c
index ccccdaf..0af05a0 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c
@@ -51,13 +51,13 @@ __ieee754_acosh (double x)
 
       /* 2**28 > x > 2 */
       double t = x * x;
-      return __ieee754_log (2.0 * x - one / (x + __ieee754_sqrt (t - one)));
+      return __ieee754_log (2.0 * x - one / (x + sqrt (t - one)));
     }
   else if (__glibc_likely (hx > INT64_C (0x3ff0000000000000)))
     {
       /* 1<x<2 */
       double t = x - one;
-      return __log1p (t + __ieee754_sqrt (2.0 * t + t * t));
+      return __log1p (t + sqrt (2.0 * t + t * t));
     }
   else if (__glibc_likely (hx == INT64_C (0x3ff0000000000000)))
     return 0.0;				/* acosh(1) = 0 */
diff --git a/sysdeps/ieee754/flt-32/e_acosf.c b/sysdeps/ieee754/flt-32/e_acosf.c
index 6f792f6..3b2e4f1 100644
--- a/sysdeps/ieee754/flt-32/e_acosf.c
+++ b/sysdeps/ieee754/flt-32/e_acosf.c
@@ -56,14 +56,14 @@ __ieee754_acosf(float x)
 	    z = (one+x)*(float)0.5;
 	    p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
 	    q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
-	    s = __ieee754_sqrtf(z);
+	    s = sqrtf(z);
 	    r = p/q;
 	    w = r*s-pio2_lo;
 	    return pi - (float)2.0*(s+w);
 	} else {			/* x > 0.5 */
 	    int32_t idf;
 	    z = (one-x)*(float)0.5;
-	    s = __ieee754_sqrtf(z);
+	    s = sqrtf(z);
 	    df = s;
 	    GET_FLOAT_WORD(idf,df);
 	    SET_FLOAT_WORD(df,idf&0xfffff000);
diff --git a/sysdeps/ieee754/flt-32/e_acoshf.c b/sysdeps/ieee754/flt-32/e_acoshf.c
index aabfb85..49e64f3 100644
--- a/sysdeps/ieee754/flt-32/e_acoshf.c
+++ b/sysdeps/ieee754/flt-32/e_acoshf.c
@@ -40,10 +40,10 @@ float __ieee754_acoshf(float x)
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one)));
+	    return __ieee754_logf((float)2.0*x-one/(x+sqrtf(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
-	    return __log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t));
+	    return __log1pf(t+sqrtf((float)2.0*t+t*t));
 	}
 }
 strong_alias (__ieee754_acoshf, __acoshf_finite)
diff --git a/sysdeps/ieee754/flt-32/e_asinf.c b/sysdeps/ieee754/flt-32/e_asinf.c
index 2ca2dbc..55eb144 100644
--- a/sysdeps/ieee754/flt-32/e_asinf.c
+++ b/sysdeps/ieee754/flt-32/e_asinf.c
@@ -85,7 +85,7 @@ float __ieee754_asinf(float x)
 	w = one-fabsf(x);
 	t = w*0.5f;
 	p = t * (p0 + t * (p1 + t * (p2 + t * (p3 + t * p4))));
-	s = __ieee754_sqrtf(t);
+	s = sqrtf(t);
 	if(ix>=0x3F79999A) {	/* if |x| > 0.975 */
 	    t = pio2_hi-(2.0f*(s+s*p)-pio2_lo);
 	} else {
diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c
index 81258a6..efbff02 100644
--- a/sysdeps/ieee754/flt-32/e_gammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -91,7 +91,7 @@ gammaf_positive (float x, int *exp2_adj)
       float ret = (__ieee754_powf (x_adj_mant, x_adj)
 		   * __ieee754_exp2f (x_adj_log2 * x_adj_frac)
 		   * __ieee754_expf (-x_adj)
-		   * __ieee754_sqrtf (2 * (float) M_PI / x_adj)
+		   * sqrtf (2 * (float) M_PI / x_adj)
 		   / prod);
       exp_adj += x_eps * __ieee754_logf (x_adj);
       float bsum = gamma_coeff[NCOEFF - 1];
diff --git a/sysdeps/ieee754/flt-32/e_hypotf.c b/sysdeps/ieee754/flt-32/e_hypotf.c
index fda2651..5336876 100644
--- a/sysdeps/ieee754/flt-32/e_hypotf.c
+++ b/sysdeps/ieee754/flt-32/e_hypotf.c
@@ -40,6 +40,6 @@ __ieee754_hypotf(float x, float y)
 	d_x = (double) x;
 	d_y = (double) y;
 
-	return (float) __ieee754_sqrt(d_x * d_x + d_y * d_y);
+	return (float) sqrt(d_x * d_x + d_y * d_y);
 }
 strong_alias (__ieee754_hypotf, __hypotf_finite)
diff --git a/sysdeps/ieee754/flt-32/e_j0f.c b/sysdeps/ieee754/flt-32/e_j0f.c
index b783dd0..105965d 100644
--- a/sysdeps/ieee754/flt-32/e_j0f.c
+++ b/sysdeps/ieee754/flt-32/e_j0f.c
@@ -58,10 +58,10 @@ __ieee754_j0f(float x)
 	 * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
 	 * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
 	 */
-		if(ix>0x48000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(x);
+		if(ix>0x48000000) z = (invsqrtpi*cc)/sqrtf(x);
 		else {
 		    u = pzerof(x); v = qzerof(x);
-		    z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(x);
+		    z = invsqrtpi*(u*cc-v*ss)/sqrtf(x);
 		}
 		return z;
 	}
@@ -131,10 +131,10 @@ __ieee754_y0f(float x)
 		    if ((s*c)<zero) cc = z/ss;
 		    else            ss = z/cc;
 		}
-		if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x);
+		if(ix>0x48000000) z = (invsqrtpi*ss)/sqrtf(x);
 		else {
 		    u = pzerof(x); v = qzerof(x);
-		    z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x);
+		    z = invsqrtpi*(u*ss+v*cc)/sqrtf(x);
 		}
 		return z;
 	}
diff --git a/sysdeps/ieee754/flt-32/e_j1f.c b/sysdeps/ieee754/flt-32/e_j1f.c
index 805a87d..95f03d1 100644
--- a/sysdeps/ieee754/flt-32/e_j1f.c
+++ b/sysdeps/ieee754/flt-32/e_j1f.c
@@ -61,10 +61,10 @@ __ieee754_j1f(float x)
 	 * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
 	 * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
 	 */
-		if(ix>0x48000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(y);
+		if(ix>0x48000000) z = (invsqrtpi*cc)/sqrtf(y);
 		else {
 		    u = ponef(y); v = qonef(y);
-		    z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(y);
+		    z = invsqrtpi*(u*cc-v*ss)/sqrtf(y);
 		}
 		if(hx<0) return -z;
 		else	 return  z;
@@ -135,10 +135,10 @@ __ieee754_y1f(float x)
 	 *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
 	 * to compute the worse one.
 	 */
-		if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x);
+		if(ix>0x48000000) z = (invsqrtpi*ss)/sqrtf(x);
 		else {
 		    u = ponef(x); v = qonef(x);
-		    z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x);
+		    z = invsqrtpi*(u*ss+v*cc)/sqrtf(x);
 		}
 		return z;
 	}
diff --git a/sysdeps/ieee754/flt-32/s_asinhf.c b/sysdeps/ieee754/flt-32/s_asinhf.c
index 165a754..27ecdd5 100644
--- a/sysdeps/ieee754/flt-32/s_asinhf.c
+++ b/sysdeps/ieee754/flt-32/s_asinhf.c
@@ -40,10 +40,10 @@ __asinhf(float x)
 	} else {
 	    float xa = fabsf(x);
 	    if (ix>0x40000000) {	/* 2**14 > |x| > 2.0 */
-		w = __ieee754_logf(2.0f*xa+one/(__ieee754_sqrtf(xa*xa+one)+xa));
+		w = __ieee754_logf(2.0f*xa+one/(sqrtf(xa*xa+one)+xa));
 	    } else {		/* 2.0 > |x| > 2**-14 */
 		float t = xa*xa;
-		w =__log1pf(xa+t/(one+__ieee754_sqrtf(one+t)));
+		w =__log1pf(xa+t/(one+sqrtf(one+t)));
 	    }
 	}
 	return __copysignf(w, x);
diff --git a/sysdeps/ieee754/ldbl-128/e_acoshl.c b/sysdeps/ieee754/ldbl-128/e_acoshl.c
index 10576c9..c292759 100644
--- a/sysdeps/ieee754/ldbl-128/e_acoshl.c
+++ b/sysdeps/ieee754/ldbl-128/e_acoshl.c
@@ -52,10 +52,10 @@ __ieee754_acoshl(_Float128 x)
 	    return 0;			/* acosh(1) = 0 */
 	} else if (hx > 0x4000000000000000LL) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_logl(2*x-one/(x+__ieee754_sqrtl(t-one)));
+	    return __ieee754_logl(2*x-one/(x+sqrtl(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
-	    return __log1pl(t+__sqrtl(2*t+t*t));
+	    return __log1pl(t+sqrtl(2*t+t*t));
 	}
 }
 strong_alias (__ieee754_acoshl, __acoshl_finite)
diff --git a/sysdeps/ieee754/ldbl-128/e_acosl.c b/sysdeps/ieee754/ldbl-128/e_acosl.c
index 342ea5f..0dc23de 100644
--- a/sysdeps/ieee754/ldbl-128/e_acosl.c
+++ b/sysdeps/ieee754/ldbl-128/e_acosl.c
@@ -51,7 +51,7 @@
  *      if x is NaN, return x itself;
  *      if |x|>1, return NaN with invalid signal.
  *
- * Functions needed: __ieee754_sqrtl.
+ * Functions needed: sqrtl.
  */
 
 #include <math.h>
@@ -270,7 +270,7 @@ __ieee754_acosl (_Float128 x)
   else
     {				/* |x| >= .625 */
       z = (one - u.value) * 0.5;
-      s = __ieee754_sqrtl (z);
+      s = sqrtl (z);
       /* Compute an extended precision square root from
 	 the Newton iteration  s -> 0.5 * (s + z / s).
 	 The change w from s to the improved value is
diff --git a/sysdeps/ieee754/ldbl-128/e_asinl.c b/sysdeps/ieee754/ldbl-128/e_asinl.c
index 1edf1c0..53c2f1f 100644
--- a/sysdeps/ieee754/ldbl-128/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-128/e_asinl.c
@@ -231,7 +231,7 @@ __ieee754_asinl (_Float128 x)
       return x + x * w;
     }
 
-  s = __ieee754_sqrtl (t);
+  s = sqrtl (t);
   if (ix >= 0x3ffef333) /* |x| > 0.975 */
     {
       w = p / q;
diff --git a/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
index 1d415d4..95b9fe0 100644
--- a/sysdeps/ieee754/ldbl-128/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
@@ -107,7 +107,7 @@ gammal_positive (_Float128 x, int *exp2_adj)
       _Float128 ret = (__ieee754_powl (x_adj_mant, x_adj)
 		       * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
 		       * __ieee754_expl (-x_adj)
-		       * __ieee754_sqrtl (2 * M_PIl / x_adj)
+		       * sqrtl (2 * M_PIl / x_adj)
 		       / prod);
       exp_adj += x_eps * __ieee754_logl (x_adj);
       _Float128 bsum = gamma_coeff[NCOEFF - 1];
diff --git a/sysdeps/ieee754/ldbl-128/e_hypotl.c b/sysdeps/ieee754/ldbl-128/e_hypotl.c
index 87160e4..dd82b3a 100644
--- a/sysdeps/ieee754/ldbl-128/e_hypotl.c
+++ b/sysdeps/ieee754/ldbl-128/e_hypotl.c
@@ -116,7 +116,7 @@ __ieee754_hypotl(_Float128 x, _Float128 y)
 	    t1 = 0;
 	    SET_LDOUBLE_MSW64(t1,ha);
 	    t2 = a-t1;
-	    w  = __ieee754_sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
+	    w  = sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
 	} else {
 	    a  = a+a;
 	    y1 = 0;
@@ -125,7 +125,7 @@ __ieee754_hypotl(_Float128 x, _Float128 y)
 	    t1 = 0;
 	    SET_LDOUBLE_MSW64(t1,ha+0x0001000000000000LL);
 	    t2 = a - t1;
-	    w  = __ieee754_sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	    w  = sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
 	}
 	if(k!=0) {
 	    uint64_t high;
diff --git a/sysdeps/ieee754/ldbl-128/e_j0l.c b/sysdeps/ieee754/ldbl-128/e_j0l.c
index 9190e27..5c69995 100644
--- a/sysdeps/ieee754/ldbl-128/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j0l.c
@@ -723,7 +723,7 @@ __ieee754_j0l (_Float128 x)
     }
 
   if (xx > L(0x1p256))
-    return ONEOSQPI * cc / __ieee754_sqrtl (xx);
+    return ONEOSQPI * cc / sqrtl (xx);
 
   xinv = 1 / xx;
   z = xinv * xinv;
@@ -786,7 +786,7 @@ __ieee754_j0l (_Float128 x)
   p = 1 + z * p;
   q = z * xinv * q;
   q = q - L(0.125) * xinv;
-  z = ONEOSQPI * (p * cc - q * ss) / __ieee754_sqrtl (xx);
+  z = ONEOSQPI * (p * cc - q * ss) / sqrtl (xx);
   return z;
 }
 strong_alias (__ieee754_j0l, __j0l_finite)
@@ -868,7 +868,7 @@ _Float128
     }
 
   if (xx > L(0x1p256))
-    return ONEOSQPI * ss / __ieee754_sqrtl (x);
+    return ONEOSQPI * ss / sqrtl (x);
 
   xinv = 1 / xx;
   z = xinv * xinv;
@@ -931,7 +931,7 @@ _Float128
   p = 1 + z * p;
   q = z * xinv * q;
   q = q - L(0.125) * xinv;
-  z = ONEOSQPI * (p * ss + q * cc) / __ieee754_sqrtl (x);
+  z = ONEOSQPI * (p * ss + q * cc) / sqrtl (x);
   return z;
 }
 strong_alias (__ieee754_y0l, __y0l_finite)
diff --git a/sysdeps/ieee754/ldbl-128/e_j1l.c b/sysdeps/ieee754/ldbl-128/e_j1l.c
index e7af40e..bff3a5e 100644
--- a/sysdeps/ieee754/ldbl-128/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j1l.c
@@ -736,7 +736,7 @@ __ieee754_j1l (_Float128 x)
 
   if (xx > L(0x1p256))
     {
-      z = ONEOSQPI * cc / __ieee754_sqrtl (xx);
+      z = ONEOSQPI * cc / sqrtl (xx);
       if (x < 0)
 	z = -z;
       return z;
@@ -803,7 +803,7 @@ __ieee754_j1l (_Float128 x)
   p = 1 + z * p;
   q = z * q;
   q = q * xinv + L(0.375) * xinv;
-  z = ONEOSQPI * (p * cc - q * ss) / __ieee754_sqrtl (xx);
+  z = ONEOSQPI * (p * cc - q * ss) / sqrtl (xx);
   if (x < 0)
     z = -z;
   return z;
@@ -892,7 +892,7 @@ __ieee754_y1l (_Float128 x)
     }
 
   if (xx > L(0x1p256))
-    return ONEOSQPI * ss / __ieee754_sqrtl (xx);
+    return ONEOSQPI * ss / sqrtl (xx);
 
   xinv = 1 / xx;
   z = xinv * xinv;
@@ -955,7 +955,7 @@ __ieee754_y1l (_Float128 x)
   p = 1 + z * p;
   q = z * q;
   q = q * xinv + L(0.375) * xinv;
-  z = ONEOSQPI * (p * ss + q * cc) / __ieee754_sqrtl (xx);
+  z = ONEOSQPI * (p * ss + q * cc) / sqrtl (xx);
   return z;
 }
 strong_alias (__ieee754_y1l, __y1l_finite)
diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c
index 7ae671b..635b4e7 100644
--- a/sysdeps/ieee754/ldbl-128/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-128/e_jnl.c
@@ -149,7 +149,7 @@ __ieee754_jnl (int n, _Float128 x)
 		temp = c - s;
 		break;
 	      }
-	    b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	    b = invsqrtpi * temp / sqrtl (x);
 	  }
 	else
 	  {
@@ -385,7 +385,7 @@ __ieee754_ynl (int n, _Float128 x)
 	    temp = s + c;
 	    break;
 	  }
-	b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	b = invsqrtpi * temp / sqrtl (x);
       }
     else
       {
diff --git a/sysdeps/ieee754/ldbl-128/e_powl.c b/sysdeps/ieee754/ldbl-128/e_powl.c
index 2aef955..4418ad7 100644
--- a/sysdeps/ieee754/ldbl-128/e_powl.c
+++ b/sysdeps/ieee754/ldbl-128/e_powl.c
@@ -233,7 +233,7 @@ __ieee754_powl (_Float128 x, _Float128 y)
       if (hy == 0x3ffe0000)
 	{			/* y is  0.5 */
 	  if (hx >= 0)		/* x >= +0 */
-	    return __ieee754_sqrtl (x);
+	    return sqrtl (x);
 	}
     }
 
diff --git a/sysdeps/ieee754/ldbl-128/s_asinhl.c b/sysdeps/ieee754/ldbl-128/s_asinhl.c
index 307ca00..92a4826 100644
--- a/sysdeps/ieee754/ldbl-128/s_asinhl.c
+++ b/sysdeps/ieee754/ldbl-128/s_asinhl.c
@@ -65,12 +65,12 @@ __asinhl (_Float128 x)
   else if (ix >0x40000000)
     {				/* 2^ 54 > |x| > 2.0 */
       t = u.value;
-      w = __ieee754_logl (2.0 * t + one / (__ieee754_sqrtl (x * x + one) + t));
+      w = __ieee754_logl (2.0 * t + one / (sqrtl (x * x + one) + t));
     }
   else
     {				/* 2.0 > |x| > 2 ^ -56 */
       t = x * x;
-      w = __log1pl (u.value + t / (one + __ieee754_sqrtl (one + t)));
+      w = __log1pl (u.value + t / (one + sqrtl (one + t)));
     }
   if (sign & 0x80000000)
     return -w;
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c b/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c
index cab1da9..f85fe67 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c
@@ -53,10 +53,10 @@ __ieee754_acoshl(long double x)
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x4000000000000000LL) {	/* 2**56 > x > 2 */
 	    t=x*x;
-	    return __ieee754_logl(2.0*x-one/(x+__ieee754_sqrtl(t-one)));
+	    return __ieee754_logl(2.0*x-one/(x+sqrtl(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
-	    return __log1pl(t+__ieee754_sqrtl(2.0*t+t*t));
+	    return __log1pl(t+sqrtl(2.0*t+t*t));
 	}
 }
 strong_alias (__ieee754_acoshl, __acoshl_finite)
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_acosl.c b/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
index 5974ee1..1f8e405 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
@@ -51,7 +51,7 @@
  *      if x is NaN, return x itself;
  *      if |x|>1, return NaN with invalid signal.
  *
- * Functions needed: __ieee754_sqrtl.
+ * Functions needed: sqrtl.
  */
 
 #include <math.h>
@@ -268,7 +268,7 @@ __ieee754_acosl (long double x)
       double shi, slo;
 
       z = (one - a) * 0.5;
-      s = __ieee754_sqrtl (z);
+      s = sqrtl (z);
       /* Compute an extended precision square root from
 	 the Newton iteration  s -> 0.5 * (s + z / s).
 	 The change w from s to the improved value is
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_asinl.c b/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
index 6ed5e8d..1d42fce 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
@@ -62,7 +62,6 @@
 #include <float.h>
 #include <math.h>
 #include <math_private.h>
-long double sqrtl (long double);
 
 static const long double
   one = 1.0L,
@@ -226,7 +225,7 @@ __ieee754_asinl (long double x)
       return x + x * w;
     }
 
-  s = __ieee754_sqrtl (t);
+  s = sqrtl (t);
   if (a > 0.975L)
     {
       w = p / q;
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
index 962d0c6..0ce7024 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
@@ -106,7 +106,7 @@ gammal_positive (long double x, int *exp2_adj)
       long double ret = (__ieee754_powl (x_adj_mant, x_adj)
 			 * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
 			 * __ieee754_expl (-x_adj)
-			 * __ieee754_sqrtl (2 * M_PIl / x_adj)
+			 * sqrtl (2 * M_PIl / x_adj)
 			 / prod);
       exp_adj += x_eps * __ieee754_logl (x_adj);
       long double bsum = gamma_coeff[NCOEFF - 1];
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c b/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
index de5a66a..7f3b04f 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
@@ -107,7 +107,7 @@ __ieee754_hypotl(long double x, long double y)
 	       = a1*(a1+a2) + a2*a + b*b
 	       = a1*a1 + a1*a2 + a2*a + b*b
 	       = a1*a1 + a2*(a+a1) + b*b  */
-	    w  = __ieee754_sqrtl(a1*a1-(b*(-b)-a2*(a+a1)));
+	    w  = sqrtl(a1*a1-(b*(-b)-a2*(a+a1)));
 	} else {
 	    a  = a+a;
 	    ldbl_unpack (b, &hi, &lo);
@@ -124,7 +124,7 @@ __ieee754_hypotl(long double x, long double y)
 	       = w*w + a1*b + a2*b
 	       = w*w + a1*(b1+b2) + a2*b
 	       = w*w + a1*b1 + a1*b2 + a2*b  */
-	    w  = __ieee754_sqrtl(a1*b1-(w*(-w)-(a1*b2+a2*b)));
+	    w  = sqrtl(a1*b1-(w*(-w)-(a1*b2+a2*b)));
 	}
 	if(k!=0)
 	    {
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_j0l.c b/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
index 42d4488..448cfb6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
@@ -650,7 +650,7 @@ __ieee754_j0l (long double x)
     }
 
   if (xx > 0x1p256L)
-    return ONEOSQPI * cc / __ieee754_sqrtl (xx);
+    return ONEOSQPI * cc / sqrtl (xx);
 
   xinv = 1 / xx;
   z = xinv * xinv;
@@ -713,7 +713,7 @@ __ieee754_j0l (long double x)
   p = 1 + z * p;
   q = z * xinv * q;
   q = q - 0.125L * xinv;
-  z = ONEOSQPI * (p * cc - q * ss) / __ieee754_sqrtl (xx);
+  z = ONEOSQPI * (p * cc - q * ss) / sqrtl (xx);
   return z;
 }
 strong_alias (__ieee754_j0l, __j0l_finite)
@@ -795,7 +795,7 @@ long double
     }
 
   if (xx > 0x1p256L)
-    return ONEOSQPI * ss / __ieee754_sqrtl (x);
+    return ONEOSQPI * ss / sqrtl (x);
 
   xinv = 1 / xx;
   z = xinv * xinv;
@@ -858,7 +858,7 @@ long double
   p = 1 + z * p;
   q = z * xinv * q;
   q = q - 0.125L * xinv;
-  z = ONEOSQPI * (p * ss + q * cc) / __ieee754_sqrtl (x);
+  z = ONEOSQPI * (p * ss + q * cc) / sqrtl (x);
   return z;
 }
 strong_alias (__ieee754_y0l, __y0l_finite)
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
index e70cae1..6130609 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
@@ -659,7 +659,7 @@ __ieee754_j1l (long double x)
 
   if (xx > 0x1p256L)
     {
-      z = ONEOSQPI * cc / __ieee754_sqrtl (xx);
+      z = ONEOSQPI * cc / sqrtl (xx);
       if (x < 0)
 	z = -z;
       return z;
@@ -726,7 +726,7 @@ __ieee754_j1l (long double x)
   p = 1 + z * p;
   q = z * q;
   q = q * xinv + 0.375L * xinv;
-  z = ONEOSQPI * (p * cc - q * ss) / __ieee754_sqrtl (xx);
+  z = ONEOSQPI * (p * cc - q * ss) / sqrtl (xx);
   if (x < 0)
     z = -z;
   return z;
@@ -815,7 +815,7 @@ __ieee754_y1l (long double x)
     }
 
   if (xx > 0x1p256L)
-    return ONEOSQPI * ss / __ieee754_sqrtl (xx);
+    return ONEOSQPI * ss / sqrtl (xx);
 
   xinv = 1 / xx;
   z = xinv * xinv;
@@ -878,7 +878,7 @@ __ieee754_y1l (long double x)
   p = 1 + z * p;
   q = z * q;
   q = q * xinv + 0.375L * xinv;
-  z = ONEOSQPI * (p * ss + q * cc) / __ieee754_sqrtl (xx);
+  z = ONEOSQPI * (p * ss + q * cc) / sqrtl (xx);
   return z;
 }
 strong_alias (__ieee754_y1l, __y1l_finite)
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
index 4a8ccb0..dde5720 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
@@ -149,7 +149,7 @@ __ieee754_jnl (int n, long double x)
 		temp = c - s;
 		break;
 	      }
-	    b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	    b = invsqrtpi * temp / sqrtl (x);
 	  }
 	else
 	  {
@@ -385,7 +385,7 @@ __ieee754_ynl (int n, long double x)
 	    temp = s + c;
 	    break;
 	  }
-	b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	b = invsqrtpi * temp / sqrtl (x);
       }
     else
       {
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_powl.c b/sysdeps/ieee754/ldbl-128ibm/e_powl.c
index cdcc3cd..b6c7011 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_powl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_powl.c
@@ -233,7 +233,7 @@ __ieee754_powl (long double x, long double y)
 	  if (hy == 0x3fe00000)
 	    {			/* y is  0.5 */
 	      if (hx >= 0)		/* x >= +0 */
-		return __ieee754_sqrtl (x);
+		return sqrtl (x);
 	    }
 	}
     }
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c b/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
index aa9a9ba..21ba14b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
@@ -53,10 +53,10 @@ long double __asinhl(long double x)
 	    w = __ieee754_logl(fabsl(x))+ln2;
 	} else if (ix>0x4000000000000000LL) {	/* 2**56 >= |x| > 2.0 */
 	    t = fabs(x);
-	    w = __ieee754_logl(2.0*t+one/(__ieee754_sqrtl(x*x+one)+t));
+	    w = __ieee754_logl(2.0*t+one/(sqrtl(x*x+one)+t));
 	} else {		/* 2.0 >= |x| >= 2**-56 */
 	    t = x*x;
-	    w =__log1pl(fabsl(x)+t/(one+__ieee754_sqrtl(one+t)));
+	    w =__log1pl(fabsl(x)+t/(one+sqrtl(one+t)));
 	}
 	if(hx>0) return w; else return -w;
 }
diff --git a/sysdeps/ieee754/ldbl-96/e_acoshl.c b/sysdeps/ieee754/ldbl-96/e_acoshl.c
index 381deb5..56b04d4 100644
--- a/sysdeps/ieee754/ldbl-96/e_acoshl.c
+++ b/sysdeps/ieee754/ldbl-96/e_acoshl.c
@@ -52,10 +52,10 @@ __ieee754_acoshl(long double x)
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (se > 0x4000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_logl(2.0*x-one/(x+__ieee754_sqrtl(t-one)));
+	    return __ieee754_logl(2.0*x-one/(x+sqrtl(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
-	    return __log1pl(t+__ieee754_sqrtl(2.0*t+t*t));
+	    return __log1pl(t+sqrtl(2.0*t+t*t));
 	}
 }
 strong_alias (__ieee754_acoshl, __acoshl_finite)
diff --git a/sysdeps/ieee754/ldbl-96/e_asinl.c b/sysdeps/ieee754/ldbl-96/e_asinl.c
index 71ce0e8..85982ca 100644
--- a/sysdeps/ieee754/ldbl-96/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-96/e_asinl.c
@@ -132,7 +132,7 @@ __ieee754_asinl (long double x)
   t = w * 0.5;
   p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5)))));
   q = qS0 + t * (qS1 + t * (qS2 + t * (qS3 + t * (qS4 + t))));
-  s = __ieee754_sqrtl (t);
+  s = sqrtl (t);
   if (ix >= 0x3ffef999)
     {				/* if |x| > 0.975 */
       w = p / q;
diff --git a/sysdeps/ieee754/ldbl-96/e_gammal_r.c b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
index a759eb1..5e5fd10 100644
--- a/sysdeps/ieee754/ldbl-96/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
@@ -100,7 +100,7 @@ gammal_positive (long double x, int *exp2_adj)
       long double ret = (__ieee754_powl (x_adj_mant, x_adj)
 			 * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
 			 * __ieee754_expl (-x_adj)
-			 * __ieee754_sqrtl (2 * M_PIl / x_adj)
+			 * sqrtl (2 * M_PIl / x_adj)
 			 / prod);
       exp_adj += x_eps * __ieee754_logl (x_adj);
       long double bsum = gamma_coeff[NCOEFF - 1];
diff --git a/sysdeps/ieee754/ldbl-96/e_hypotl.c b/sysdeps/ieee754/ldbl-96/e_hypotl.c
index 337908f..560ef22 100644
--- a/sysdeps/ieee754/ldbl-96/e_hypotl.c
+++ b/sysdeps/ieee754/ldbl-96/e_hypotl.c
@@ -117,7 +117,7 @@ long double __ieee754_hypotl(long double x, long double y)
 	    GET_LDOUBLE_MSW(high,a);
 	    SET_LDOUBLE_WORDS(t1,ea,high,0);
 	    t2 = a-t1;
-	    w  = __ieee754_sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
+	    w  = sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
 	} else {
 	    uint32_t high;
 	    GET_LDOUBLE_MSW(high,b);
@@ -127,7 +127,7 @@ long double __ieee754_hypotl(long double x, long double y)
 	    GET_LDOUBLE_MSW(high,a);
 	    SET_LDOUBLE_WORDS(t1,ea+1,high,0);
 	    t2 = a - t1;
-	    w  = __ieee754_sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	    w  = sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
 	}
 	if(k!=0) {
 	    uint32_t exp;
diff --git a/sysdeps/ieee754/ldbl-96/e_j0l.c b/sysdeps/ieee754/ldbl-96/e_j0l.c
index 4339d27..799812a 100644
--- a/sysdeps/ieee754/ldbl-96/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-96/e_j0l.c
@@ -133,12 +133,12 @@ __ieee754_j0l (long double x)
        * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
        */
       if (__glibc_unlikely (ix > 0x4080))      	/* 2^129 */
-	z = (invsqrtpi * cc) / __ieee754_sqrtl (x);
+	z = (invsqrtpi * cc) / sqrtl (x);
       else
 	{
 	  u = pzero (x);
 	  v = qzero (x);
-	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrtl (x);
+	  z = invsqrtpi * (u * cc - v * ss) / sqrtl (x);
 	}
       return z;
     }
@@ -235,12 +235,12 @@ __ieee754_y0l (long double x)
 	    ss = z / cc;
 	}
       if (__glibc_unlikely (ix > 0x4080))      	/* 1e39 */
-	z = (invsqrtpi * ss) / __ieee754_sqrtl (x);
+	z = (invsqrtpi * ss) / sqrtl (x);
       else
 	{
 	  u = pzero (x);
 	  v = qzero (x);
-	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrtl (x);
+	  z = invsqrtpi * (u * ss + v * cc) / sqrtl (x);
 	}
       return z;
     }
diff --git a/sysdeps/ieee754/ldbl-96/e_j1l.c b/sysdeps/ieee754/ldbl-96/e_j1l.c
index 4f07b0b..6d0cb9e 100644
--- a/sysdeps/ieee754/ldbl-96/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-96/e_j1l.c
@@ -137,12 +137,12 @@ __ieee754_j1l (long double x)
        * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
        */
       if (__glibc_unlikely (ix > 0x4080))
-	z = (invsqrtpi * cc) / __ieee754_sqrtl (y);
+	z = (invsqrtpi * cc) / sqrtl (y);
       else
 	{
 	  u = pone (y);
 	  v = qone (y);
-	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrtl (y);
+	  z = invsqrtpi * (u * cc - v * ss) / sqrtl (y);
 	}
       if (se & 0x8000)
 	return -z;
@@ -231,12 +231,12 @@ __ieee754_y1l (long double x)
        * to compute the worse one.
        */
       if (__glibc_unlikely (ix > 0x4080))
-	z = (invsqrtpi * ss) / __ieee754_sqrtl (x);
+	z = (invsqrtpi * ss) / sqrtl (x);
       else
 	{
 	  u = pone (x);
 	  v = qone (x);
-	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrtl (x);
+	  z = invsqrtpi * (u * ss + v * cc) / sqrtl (x);
 	}
       return z;
     }
diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c
index d801ec6..fe249b9 100644
--- a/sysdeps/ieee754/ldbl-96/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-96/e_jnl.c
@@ -142,7 +142,7 @@ __ieee754_jnl (int n, long double x)
 		temp = c - s;
 		break;
 	      }
-	    b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	    b = invsqrtpi * temp / sqrtl (x);
 	  }
 	else
 	  {
@@ -371,7 +371,7 @@ __ieee754_ynl (int n, long double x)
 	    temp = s + c;
 	    break;
 	  }
-	b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	b = invsqrtpi * temp / sqrtl (x);
       }
     else
       {
diff --git a/sysdeps/ieee754/ldbl-96/s_asinhl.c b/sysdeps/ieee754/ldbl-96/s_asinhl.c
index 8f7db4c..50a08ed 100644
--- a/sysdeps/ieee754/ldbl-96/s_asinhl.c
+++ b/sysdeps/ieee754/ldbl-96/s_asinhl.c
@@ -55,10 +55,10 @@ long double __asinhl(long double x)
 	} else {
 	    long double xa = fabsl(x);
 	    if (ix>0x4000) {	/* 2**34 > |x| > 2.0 */
-		w = __ieee754_logl(2.0*xa+one/(__ieee754_sqrtl(xa*xa+one)+xa));
+		w = __ieee754_logl(2.0*xa+one/(sqrtl(xa*xa+one)+xa));
 	    } else {		/* 2.0 > |x| > 2**-28 */
 		t = xa*xa;
-		w =__log1pl(xa+t/(one+__ieee754_sqrtl(one+t)));
+		w =__log1pl(xa+t/(one+sqrtl(one+t)));
 	    }
 	}
 	return __copysignl(w, x);
diff --git a/sysdeps/m68k/m680x0/fpu/e_pow.c b/sysdeps/m68k/m680x0/fpu/e_pow.c
index e542f71..a94c0e0 100644
--- a/sysdeps/m68k/m680x0/fpu/e_pow.c
+++ b/sysdeps/m68k/m680x0/fpu/e_pow.c
@@ -64,7 +64,7 @@ s(__ieee754_pow) (float_type x, float_type y)
   if (y == 2)
     return x * x;
   if (y == 0.5 && !(x_cond & __M81_COND_NEG))
-    return m81(__ieee754_sqrt) (x);
+    return m81(sqrt) (x);
 
   if (x == 10.0)
     {
diff --git a/sysdeps/powerpc/fpu/e_hypot.c b/sysdeps/powerpc/fpu/e_hypot.c
index 033200b..58352c0 100644
--- a/sysdeps/powerpc/fpu/e_hypot.c
+++ b/sysdeps/powerpc/fpu/e_hypot.c
@@ -110,7 +110,7 @@ __ieee754_hypot (double x, double y)
     {
       x *= twoM600;
       y *= twoM600;
-      return __ieee754_sqrt (x * x + y * y) / twoM600;
+      return sqrt (x * x + y * y) / twoM600;
     }
   if (y < twoM500)
     {
@@ -118,7 +118,7 @@ __ieee754_hypot (double x, double y)
 	{
 	  x *= two1022;
 	  y *= two1022;
-	  double ret = __ieee754_sqrt (x * x + y * y) / two1022;
+	  double ret = sqrt (x * x + y * y) / two1022;
 	  math_check_force_underflow_nonneg (ret);
 	  return ret;
 	}
@@ -126,9 +126,9 @@ __ieee754_hypot (double x, double y)
 	{
 	  x *= two600;
 	  y *= two600;
-	  return __ieee754_sqrt (x * x + y * y) / two600;
+	  return sqrt (x * x + y * y) / two600;
 	}
     }
-  return __ieee754_sqrt (x * x + y * y);
+  return sqrt (x * x + y * y);
 }
 strong_alias (__ieee754_hypot, __hypot_finite)
diff --git a/sysdeps/powerpc/fpu/e_hypotf.c b/sysdeps/powerpc/fpu/e_hypotf.c
index c635c1f..72b46ad 100644
--- a/sysdeps/powerpc/fpu/e_hypotf.c
+++ b/sysdeps/powerpc/fpu/e_hypotf.c
@@ -71,6 +71,6 @@ __ieee754_hypotf (float x, float y)
 {
   TEST_INF_NAN (x, y);
 
-  return __ieee754_sqrt ((double) x * x + (double) y * y);
+  return sqrt ((double) x * x + (double) y * y);
 }
 strong_alias (__ieee754_hypotf, __hypotf_finite)

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1294b1892e19d70e9e4dca0a2f3e39497f262a42

commit 1294b1892e19d70e9e4dca0a2f3e39497f262a42
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Thu Mar 15 17:57:03 2018 +0000

    Add support for sqrt asm redirects
    
    This patch series cleans up the many uses of  __ieee754_sqrt(f/l) in GLIBC.
    The goal is to enable GCC to do the inlining, and if this fails call the
    __ieee754_sqrt function.  This is done by internally declaring sqrt with asm
    redirects.  The compat symbols and sqrt wrappers need to disable the redirect.
    The redirect is also disabled if there are already redirects defined when
    using -ffinite-math-only.
    
    All math functions (but not math tests, non-library code and libnldbl) are
    built with -fno-math-errno which means GCC will typically inline sqrt as a
    single instruction.  This means targets are no longer forced to add a special
    inline for sqrt.
    
    	* include/math.h (sqrt): Declare with asm redirect.
    	(sqrtf): Likewise.
    	(sqrtl): Likewise.
    	(sqrtf128): Likewise.
    	* Makeconfig: Add -fno-math-errno for libc/libm, but build testsuite,
    	nonlib and libnldbl with -fmath-errno.
    	* math/w_sqrt_compat.c: Define NO_MATH_REDIRECT.
    	* math/w_sqrt_template.c: Likewise.
    	* math/w_sqrtf_compat.c: Likewise.
    	* math/w_sqrtl_compat.c: Likewise.
    	* sysdeps/i386/fpu/w_sqrt.c: Likewise.
    	* sysdeps/i386/fpu/w_sqrt_compat.c: Likewise.
    	* sysdeps/generic/math-type-macros-float128.h: Remove math.h and
    	complex.h.

diff --git a/ChangeLog b/ChangeLog
index 6c8c880..1a497ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,23 @@
 
 2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>
 
+	* include/math.h (sqrt): Declare with asm redirect.
+	(sqrtf): Likewise.
+	(sqrtl): Likewise.
+	(sqrtf128): Likewise.
+	* Makeconfig: Add -fno-math-errno for libc/libm, but build testsuite,
+	nonlib and libnldbl with -fmath-errno.
+	* math/w_sqrt_compat.c: Define NO_MATH_REDIRECT.
+	* math/w_sqrt_template.c: Likewise.
+	* math/w_sqrtf_compat.c: Likewise.
+	* math/w_sqrtl_compat.c: Likewise.
+	* sysdeps/i386/fpu/w_sqrt.c: Likewise.
+	* sysdeps/i386/fpu/w_sqrt_compat.c: Likewise.
+	* sysdeps/generic/math-type-macros-float128.h: Remove math.h and
+	complex.h.
+
+2018-03-15  Wilco Dijkstra  <wdijkstr@arm.com>
+
 	* benchtests/Makefile: Define _ISOMAC.
 	* benchtests/bench-strcoll.c: Add missing sys/stat.h include.
 	* benchtests/bench-string.h: Define inhibit_loop_to_libcall macro.
diff --git a/Makeconfig b/Makeconfig
index 86a71e5..1afe864 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -831,6 +831,9 @@ endif
 # disable any optimization that assume default rounding mode.
 +math-flags = -frounding-math
 
+# Build libc/libm using -fno-math-errno, but run testsuite with -fmath-errno.
++extra-math-flags = $(if $(filter libnldbl nonlib testsuite,$(in-module)),-fmath-errno,-fno-math-errno)
+
 # We might want to compile with some stack-protection flag.
 ifneq ($(stack-protector),)
 +stack-protector=$(stack-protector)
@@ -966,6 +969,7 @@ endif
 
 override CFLAGS	= -std=gnu11 -fgnu89-inline $(config-extra-cflags) \
 		  $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
+		  $(+extra-math-flags) \
 		  $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
 		  $(CFLAGS-$(@F)) $(tls-model) \
 		  $(foreach lib,$(libof-$(basename $(@F))) \
diff --git a/include/math.h b/include/math.h
index 7ee291f..e21d34b 100644
--- a/include/math.h
+++ b/include/math.h
@@ -54,5 +54,20 @@ libm_hidden_proto (__expf128)
 libm_hidden_proto (__expm1f128)
 # endif
 
+# if !(defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+#  ifndef NO_MATH_REDIRECT
+/* Declare sqrt for use within GLIBC.  Compilers typically inline sqrt as a
+   single instruction.  Use an asm to avoid use of PLTs if it doesn't.  */
+float (sqrtf) (float) asm ("__ieee754_sqrtf");
+double (sqrt) (double) asm ("__ieee754_sqrt");
+#   ifndef __NO_LONG_DOUBLE_MATH
+long double (sqrtl) (long double) asm ("__ieee754_sqrtl");
+#   endif
+#   if __HAVE_DISTINCT_FLOAT128 > 0
+_Float128 (sqrtf128) (_Float128) asm ("__ieee754_sqrtf128");
+#   endif
+#  endif
+# endif
+
 #endif
 #endif
diff --git a/math/w_sqrt_compat.c b/math/w_sqrt_compat.c
index 7884d14..e76a807 100644
--- a/math/w_sqrt_compat.c
+++ b/math/w_sqrt_compat.c
@@ -16,6 +16,7 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define NO_MATH_REDIRECT
 #include <math.h>
 #include <math_private.h>
 #include <math-svid-compat.h>
diff --git a/math/w_sqrt_template.c b/math/w_sqrt_template.c
index 52a21c0..9c6ac75 100644
--- a/math/w_sqrt_template.c
+++ b/math/w_sqrt_template.c
@@ -21,6 +21,7 @@
    for each floating-point type.  */
 #if __USE_WRAPPER_TEMPLATE
 
+# define NO_MATH_REDIRECT
 # include <errno.h>
 # include <fenv.h>
 # include <math.h>
diff --git a/math/w_sqrtf_compat.c b/math/w_sqrtf_compat.c
index 824ce0e..cad9b4a 100644
--- a/math/w_sqrtf_compat.c
+++ b/math/w_sqrtf_compat.c
@@ -16,6 +16,7 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define NO_MATH_REDIRECT
 #include <math.h>
 #include <math_private.h>
 #include <math-svid-compat.h>
diff --git a/math/w_sqrtl_compat.c b/math/w_sqrtl_compat.c
index 56627a6..16dda40 100644
--- a/math/w_sqrtl_compat.c
+++ b/math/w_sqrtl_compat.c
@@ -16,6 +16,7 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define NO_MATH_REDIRECT
 #include <math.h>
 #include <math_private.h>
 #include <math-svid-compat.h>
diff --git a/sysdeps/generic/math-type-macros-float128.h b/sysdeps/generic/math-type-macros-float128.h
index 605996e..485c13b 100644
--- a/sysdeps/generic/math-type-macros-float128.h
+++ b/sysdeps/generic/math-type-macros-float128.h
@@ -19,9 +19,6 @@
 #ifndef _MATH_TYPE_MACROS_FLOAT128
 #define _MATH_TYPE_MACROS_FLOAT128
 
-#include <math.h>
-#include <complex.h>
-
 #define M_LIT(c) __f128 (c)
 #define M_PFX FLT128
 #define M_SUF(c) c ## f128
diff --git a/sysdeps/i386/fpu/w_sqrt.c b/sysdeps/i386/fpu/w_sqrt.c
index d37a5d5..8bef04e 100644
--- a/sysdeps/i386/fpu/w_sqrt.c
+++ b/sysdeps/i386/fpu/w_sqrt.c
@@ -1,5 +1,6 @@
 /* The inline __ieee754_sqrt is not correctly rounding; it's OK for
    most internal uses in glibc, but not for sqrt itself.  */
+#define NO_MATH_REDIRECT
 #define __ieee754_sqrt __avoid_ieee754_sqrt
 #include <math.h>
 #include <math_private.h>
diff --git a/sysdeps/i386/fpu/w_sqrt_compat.c b/sysdeps/i386/fpu/w_sqrt_compat.c
index ddd36d0..dd485f4 100644
--- a/sysdeps/i386/fpu/w_sqrt_compat.c
+++ b/sysdeps/i386/fpu/w_sqrt_compat.c
@@ -1,5 +1,6 @@
 /* The inline __ieee754_sqrt is not correctly rounding; it's OK for
    most internal uses in glibc, but not for sqrt itself.  */
+#define NO_MATH_REDIRECT
 #define __ieee754_sqrt __avoid_ieee754_sqrt
 #include <math.h>
 #include <math_private.h>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                    |   92 ++++++++++++++++++++++++++
 Makeconfig                                   |    4 +
 include/math.h                               |   15 ++++
 math/w_sqrt_compat.c                         |    1 +
 math/w_sqrt_template.c                       |    1 +
 math/w_sqrtf_compat.c                        |    1 +
 math/w_sqrtl_compat.c                        |    1 +
 sysdeps/aarch64/fpu/math_private.h           |   16 -----
 sysdeps/alpha/fpu/math_private.h             |   26 -------
 sysdeps/generic/math-type-macros-float128.h  |    3 -
 sysdeps/generic/math-type-macros.h           |    2 +-
 sysdeps/i386/fpu/w_sqrt.c                    |    1 +
 sysdeps/i386/fpu/w_sqrt_compat.c             |    1 +
 sysdeps/ieee754/dbl-64/e_acosh.c             |    4 +-
 sysdeps/ieee754/dbl-64/e_gamma_r.c           |    2 +-
 sysdeps/ieee754/dbl-64/e_hypot.c             |    4 +-
 sysdeps/ieee754/dbl-64/e_j0.c                |    8 +-
 sysdeps/ieee754/dbl-64/e_j1.c                |    8 +-
 sysdeps/ieee754/dbl-64/e_jn.c                |    4 +-
 sysdeps/ieee754/dbl-64/s_asinh.c             |    4 +-
 sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c |    4 +-
 sysdeps/ieee754/flt-32/e_acosf.c             |    4 +-
 sysdeps/ieee754/flt-32/e_acoshf.c            |    4 +-
 sysdeps/ieee754/flt-32/e_asinf.c             |    2 +-
 sysdeps/ieee754/flt-32/e_gammaf_r.c          |    2 +-
 sysdeps/ieee754/flt-32/e_hypotf.c            |    2 +-
 sysdeps/ieee754/flt-32/e_j0f.c               |    8 +-
 sysdeps/ieee754/flt-32/e_j1f.c               |    8 +-
 sysdeps/ieee754/flt-32/s_asinhf.c            |    4 +-
 sysdeps/ieee754/ldbl-128/e_acoshl.c          |    4 +-
 sysdeps/ieee754/ldbl-128/e_acosl.c           |    4 +-
 sysdeps/ieee754/ldbl-128/e_asinl.c           |    2 +-
 sysdeps/ieee754/ldbl-128/e_gammal_r.c        |    2 +-
 sysdeps/ieee754/ldbl-128/e_hypotl.c          |    4 +-
 sysdeps/ieee754/ldbl-128/e_j0l.c             |    8 +-
 sysdeps/ieee754/ldbl-128/e_j1l.c             |    8 +-
 sysdeps/ieee754/ldbl-128/e_jnl.c             |    4 +-
 sysdeps/ieee754/ldbl-128/e_powl.c            |    2 +-
 sysdeps/ieee754/ldbl-128/s_asinhl.c          |    4 +-
 sysdeps/ieee754/ldbl-128ibm/e_acoshl.c       |    4 +-
 sysdeps/ieee754/ldbl-128ibm/e_acosl.c        |    4 +-
 sysdeps/ieee754/ldbl-128ibm/e_asinl.c        |    3 +-
 sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c     |    2 +-
 sysdeps/ieee754/ldbl-128ibm/e_hypotl.c       |    4 +-
 sysdeps/ieee754/ldbl-128ibm/e_j0l.c          |    8 +-
 sysdeps/ieee754/ldbl-128ibm/e_j1l.c          |    8 +-
 sysdeps/ieee754/ldbl-128ibm/e_jnl.c          |    4 +-
 sysdeps/ieee754/ldbl-128ibm/e_powl.c         |    2 +-
 sysdeps/ieee754/ldbl-128ibm/s_asinhl.c       |    4 +-
 sysdeps/ieee754/ldbl-96/e_acoshl.c           |    4 +-
 sysdeps/ieee754/ldbl-96/e_asinl.c            |    2 +-
 sysdeps/ieee754/ldbl-96/e_gammal_r.c         |    2 +-
 sysdeps/ieee754/ldbl-96/e_hypotl.c           |    4 +-
 sysdeps/ieee754/ldbl-96/e_j0l.c              |    8 +-
 sysdeps/ieee754/ldbl-96/e_j1l.c              |    8 +-
 sysdeps/ieee754/ldbl-96/e_jnl.c              |    4 +-
 sysdeps/ieee754/ldbl-96/s_asinhl.c           |    4 +-
 sysdeps/m68k/m680x0/fpu/e_pow.c              |    2 +-
 sysdeps/m68k/m680x0/fpu/mathimpl.h           |    1 -
 sysdeps/powerpc/fpu/e_hypot.c                |    8 +-
 sysdeps/powerpc/fpu/e_hypotf.c               |    2 +-
 sysdeps/powerpc/fpu/math_private.h           |   30 --------
 sysdeps/s390/fpu/bits/mathinline.h           |   66 ------------------
 sysdeps/sparc/fpu/bits/mathinline.h          |   80 ----------------------
 sysdeps/x86/fpu/bits/mathinline.h            |    1 -
 sysdeps/x86_64/fpu/math_private.h            |   32 ---------
 66 files changed, 220 insertions(+), 359 deletions(-)
 delete mode 100644 sysdeps/s390/fpu/bits/mathinline.h


hooks/post-receive
-- 
GNU C Library master sources


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