From: Wilco Dijkstra Date: Fri, 18 Sep 2015 15:39:08 +0000 (+0100) Subject: Use the GCC builtin functions for the non-inlined signbit implementations. X-Git-Tag: glibc-2.23~461 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=020167a4ce53f7dd8d5b1912a42163bd1077e6c5;p=thirdparty%2Fglibc.git Use the GCC builtin functions for the non-inlined signbit implementations. 2015-09-18 Wilco Dijkstra * sysdeps/ieee754/dbl-64/s_signbit.c (__signbit): Use __builtin_signbit. * sysdeps/ieee754/flt-32/s_signbitf.c (__signbitf): Use __builtin_signbitf. * sysdeps/ieee754/ldbl-128/s_signbitl.c (__signbitl): Use __builtin_signbitl. * sysdeps/ieee754/ldbl-128ibm/s_signbitl.c (___signbitl): Likewise. * sysdeps/ieee754/ldbl-96/s_signbitl.c (__signbitl): Likewise. --- diff --git a/ChangeLog b/ChangeLog index c6216c982bb..72605d46318 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2015-09-18 Wilco Dijkstra + + * sysdeps/ieee754/dbl-64/s_signbit.c (__signbit): + Use __builtin_signbit. + * sysdeps/ieee754/flt-32/s_signbitf.c (__signbitf): + Use __builtin_signbitf. + * sysdeps/ieee754/ldbl-128/s_signbitl.c (__signbitl): + Use __builtin_signbitl. + * sysdeps/ieee754/ldbl-128ibm/s_signbitl.c (___signbitl): Likewise. + * sysdeps/ieee754/ldbl-96/s_signbitl.c (__signbitl): Likewise. + 2015-09-18 Wilco Dijkstra [BZ #15367] diff --git a/sysdeps/ieee754/dbl-64/s_signbit.c b/sysdeps/ieee754/dbl-64/s_signbit.c index 764f11a2d23..91797eecdd9 100644 --- a/sysdeps/ieee754/dbl-64/s_signbit.c +++ b/sysdeps/ieee754/dbl-64/s_signbit.c @@ -19,13 +19,8 @@ #include -#include - int __signbit (double x) { - int32_t hx; - - GET_HIGH_WORD (hx, x); - return hx & 0x80000000; + return __builtin_signbit (x); } diff --git a/sysdeps/ieee754/flt-32/s_signbitf.c b/sysdeps/ieee754/flt-32/s_signbitf.c index 169820e9df8..034c17529ca 100644 --- a/sysdeps/ieee754/flt-32/s_signbitf.c +++ b/sysdeps/ieee754/flt-32/s_signbitf.c @@ -19,13 +19,8 @@ #include -#include - int __signbitf (float x) { - int32_t hx; - - GET_FLOAT_WORD (hx, x); - return hx & 0x80000000; + return __builtin_signbitf (x); } diff --git a/sysdeps/ieee754/ldbl-128/s_signbitl.c b/sysdeps/ieee754/ldbl-128/s_signbitl.c index acfe859a2e4..ea689a6fe55 100644 --- a/sysdeps/ieee754/ldbl-128/s_signbitl.c +++ b/sysdeps/ieee754/ldbl-128/s_signbitl.c @@ -19,13 +19,8 @@ #include -#include - int __signbitl (long double x) { - int64_t e; - - GET_LDOUBLE_MSW64 (e, x); - return e < 0; + return __builtin_signbitl (x); } diff --git a/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c b/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c index e95ad55e32a..5e2bd90704d 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c @@ -18,18 +18,12 @@ . */ #include -#include #include int ___signbitl (long double x) { - int64_t e; - double xhi; - - xhi = ldbl_high (x); - EXTRACT_WORDS64 (e, xhi); - return e < 0; + return __builtin_signbitl (x); } #if IS_IN (libm) long_double_symbol (libm, ___signbitl, __signbitl); diff --git a/sysdeps/ieee754/ldbl-96/s_signbitl.c b/sysdeps/ieee754/ldbl-96/s_signbitl.c index bbe72a62eaf..ea689a6fe55 100644 --- a/sysdeps/ieee754/ldbl-96/s_signbitl.c +++ b/sysdeps/ieee754/ldbl-96/s_signbitl.c @@ -19,13 +19,8 @@ #include -#include - int __signbitl (long double x) { - int32_t e; - - GET_LDOUBLE_EXP (e, x); - return e & 0x8000; + return __builtin_signbitl (x); }