diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/s_copysignl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_copysignl.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128/s_copysignl.c b/sysdeps/ieee754/ldbl-128/s_copysignl.c index a501139f71..848a184524 100644 --- a/sysdeps/ieee754/ldbl-128/s_copysignl.c +++ b/sysdeps/ieee754/ldbl-128/s_copysignl.c @@ -27,14 +27,20 @@ static char rcsid[] = "$NetBSD: $"; #include <math.h> #include <math_private.h> #include <libm-alias-ldouble.h> +#include <math-use-builtins.h> _Float128 __copysignl(_Float128 x, _Float128 y) { +#if USE_COPYSIGNL_BUILTIN + return __builtin_copysignl (x, y); +#else + /* Use generic implementation. */ uint64_t hx,hy; GET_LDOUBLE_MSW64(hx,x); GET_LDOUBLE_MSW64(hy,y); SET_LDOUBLE_MSW64(x,(hx&0x7fffffffffffffffULL) |(hy&0x8000000000000000ULL)); return x; +#endif /* ! USE_COPYSIGNL_BUILTIN */ } libm_alias_ldouble (__copysign, copysign) |