aboutsummaryrefslogtreecommitdiff
path: root/libm/upstream-freebsd/lib/msun/src/e_sqrt.c
diff options
context:
space:
mode:
Diffstat (limited to 'libm/upstream-freebsd/lib/msun/src/e_sqrt.c')
-rw-r--r--libm/upstream-freebsd/lib/msun/src/e_sqrt.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/libm/upstream-freebsd/lib/msun/src/e_sqrt.c b/libm/upstream-freebsd/lib/msun/src/e_sqrt.c
index 12fb56e13..37351a425 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_sqrt.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_sqrt.c
@@ -14,6 +14,18 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <float.h>
+
+#include "math.h"
+#include "math_private.h"
+
+#ifdef USE_BUILTIN_SQRT
+double
+__ieee754_sqrt(double x)
+{
+ return (__builtin_sqrt(x));
+}
+#else
/* __ieee754_sqrt(x)
* Return correctly rounded sqrt.
* ------------------------------------------
@@ -84,11 +96,6 @@ __FBSDID("$FreeBSD$");
*---------------
*/
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-
static const double one = 1.0, tiny=1.0e-300;
double
@@ -187,6 +194,7 @@ __ieee754_sqrt(double x)
INSERT_WORDS(z,ix0,ix1);
return z;
}
+#endif
#if (LDBL_MANT_DIG == 53)
__weak_reference(sqrt, sqrtl);