From: Aurelien Jarno Date: Sun, 19 Feb 2012 10:20:18 +0000 (+0100) Subject: Use non-signaling floating-point comparisons in math functions. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21902de70da58fa02f2a2a0ce583263170203332;p=thirdparty%2Fglibc.git Use non-signaling floating-point comparisons in math functions. (cherry-picked from commit 92221550d72bafcd322ac5ab2a951054184b7f1a) --- diff --git a/ChangeLog b/ChangeLog index 0b9a6e55268..6d01b56ba4d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,49 @@ * sysdeps/sparc/sparc32/fpu/libm-test-ulps: More jn test ULP updates. * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Likewise. +2012-02-19 Aurelien Jarno + + * math/w_acos.c: Use non-signaling floating-point comparisons. + * math/w_acosf.c: Likewise. + * math/w_acosh.c: Likewise. + * math/w_acoshf.c: Likewise. + * math/w_acoshl.c: Likewise. + * math/w_acosl.c: Likewise. + * math/w_asin.c: Likewise. + * math/w_asinf.c: Likewise. + * math/w_asinl.c: Likewise. + * math/w_atanh.c: Likewise. + * math/w_atanhf.c: Likewise. + * math/w_atanhl.c: Likewise. + * math/w_exp2.c: Likewise. + * math/w_exp2f.c: Likewise. + * math/w_exp2l.c: Likewise. + * math/w_j0.c: Likewise. + * math/w_j0f.c: Likewise. + * math/w_j0l.c: Likewise. + * math/w_j1.c: Likewise. + * math/w_j1f.c: Likewise. + * math/w_j1l.c: Likewise. + * math/w_jn.c: Likewise. + * math/w_jnf.c: Likewise. + * math/w_log.c: Likewise. + * math/w_log10.c: Likewise. + * math/w_log10f.c: Likewise. + * math/w_log10l.c: Likewise. + * math/w_log2.c: Likewise. + * math/w_log2f.c: Likewise. + * math/w_log2l.c: Likewise. + * math/w_logf.c: Likewise. + * math/w_logl.c: Likewise. + * math/w_sqrt.c: Likewise. + * math/w_sqrtf.c: Likewise. + * math/w_sqrtl.c: Likewise. + * sysdeps/ieee754/dbl-64/e_atanh.c: Likewise. + * sysdeps/ieee754/dbl-64/w_exp.c: Likewise. + * sysdeps/ieee754/flt-32/e_atanhf.c: Likewise. + * sysdeps/ieee754/flt-32/w_expf.c: Likewise. + * sysdeps/ieee754/ldbl-96/w_expl.c: Likewise. + 2012-02-22 Carlos O'Donell [BZ #411] diff --git a/NEWS b/NEWS index 6f899b6af3e..b92705d8a3f 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,7 @@ Version 2.15.1 * The following bugs are resolved with this release: - 411, 13731, 13748 + 411, 13731, 13732, 13748 Version 2.15 diff --git a/math/w_acos.c b/math/w_acos.c index 617cfdae498..0a0ab9cc145 100644 --- a/math/w_acos.c +++ b/math/w_acos.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ double __acos (double x) { - if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabs (x), 1.0), 0) + && _LIB_VERSION != _IEEE_) { /* acos(|x|>1) */ feraiseexcept (FE_INVALID); diff --git a/math/w_acosf.c b/math/w_acosf.c index bb3aae0010b..040f5d66b2b 100644 --- a/math/w_acosf.c +++ b/math/w_acosf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ float __acosf (float x) { - if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0) + && _LIB_VERSION != _IEEE_) { /* acos(|x|>1) */ feraiseexcept (FE_INVALID); diff --git a/math/w_acosh.c b/math/w_acosh.c index 50201b4d223..d512704bd3c 100644 --- a/math/w_acosh.c +++ b/math/w_acosh.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,7 @@ double __acosh (double x) { - if (__builtin_expect (x < 1.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isless (x, 1.0), 0) && _LIB_VERSION != _IEEE_) /* acosh(x<1) */ return __kernel_standard (x, x, 29); diff --git a/math/w_acoshf.c b/math/w_acoshf.c index 2b07824a0e4..c00a8c88b99 100644 --- a/math/w_acoshf.c +++ b/math/w_acoshf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,7 @@ float __acoshf (float x) { - if (__builtin_expect (x < 1.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_) /* acosh(x<1) */ return __kernel_standard_f (x, x, 129); diff --git a/math/w_acoshl.c b/math/w_acoshl.c index 0f7068a96e8..80ac67e68f1 100644 --- a/math/w_acoshl.c +++ b/math/w_acoshl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,7 @@ long double __acoshl (long double x) { - if (__builtin_expect (x < 1.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isless (x, 1.0L), 0) && _LIB_VERSION != _IEEE_) /* acosh(x<1) */ return __kernel_standard (x, x, 229); diff --git a/math/w_acosl.c b/math/w_acosl.c index dd1039ec855..c112950e6dc 100644 --- a/math/w_acosl.c +++ b/math/w_acosl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ long double __acosl (long double x) { - if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0) + && _LIB_VERSION != _IEEE_) { /* acos(|x|>1) */ feraiseexcept (FE_INVALID); diff --git a/math/w_asin.c b/math/w_asin.c index feb5c6aaf3f..b8c645ce208 100644 --- a/math/w_asin.c +++ b/math/w_asin.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ double __asin (double x) { - if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabs (x), 1.0), 0) + && _LIB_VERSION != _IEEE_) { /* asin(|x|>1) */ feraiseexcept (FE_INVALID); diff --git a/math/w_asinf.c b/math/w_asinf.c index 1a21dc389a1..ff4afeff161 100644 --- a/math/w_asinf.c +++ b/math/w_asinf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ float __asinf (float x) { - if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0) + && _LIB_VERSION != _IEEE_) { /* asin(|x|>1) */ feraiseexcept (FE_INVALID); diff --git a/math/w_asinl.c b/math/w_asinl.c index a9f14fbd631..05ba88ee4e1 100644 --- a/math/w_asinl.c +++ b/math/w_asinl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ long double __asinl (long double x) { - if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0) + && _LIB_VERSION != _IEEE_) { /* asin(|x|>1) */ feraiseexcept (FE_INVALID); diff --git a/math/w_atanh.c b/math/w_atanh.c index 61ea0d87543..830528a9516 100644 --- a/math/w_atanh.c +++ b/math/w_atanh.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,8 @@ double __atanh (double x) { - if (__builtin_expect (fabs (x) >= 1.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreaterequal (fabs (x), 1.0), 0) + && _LIB_VERSION != _IEEE_) return __kernel_standard (x, x, fabs (x) > 1.0 ? 30 /* atanh(|x|>1) */ diff --git a/math/w_atanhf.c b/math/w_atanhf.c index fd1dbaeee35..36c293803a7 100644 --- a/math/w_atanhf.c +++ b/math/w_atanhf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,8 @@ float __atanhf (float x) { - if (__builtin_expect (fabsf (x) >= 1.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0) + && _LIB_VERSION != _IEEE_) return __kernel_standard_f (x, x, fabsf (x) > 1.0f ? 130 /* atanh(|x|>1) */ diff --git a/math/w_atanhl.c b/math/w_atanhl.c index 7c958f1312d..6d7617d075d 100644 --- a/math/w_atanhl.c +++ b/math/w_atanhl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,8 @@ long double __atanhl (long double x) { - if (__builtin_expect (fabsl (x) >= 1.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreaterequal (fabsl (x), 1.0L), 0) + && _LIB_VERSION != _IEEE_) return __kernel_standard (x, x, fabsl (x) > 1.0L ? 230 /* atanh(|x|>1) */ diff --git a/math/w_exp2.c b/math/w_exp2.c index bf223265cb4..7a3b0afb74d 100644 --- a/math/w_exp2.c +++ b/math/w_exp2.c @@ -12,7 +12,8 @@ static const double u_threshold = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1); double __exp2 (double x) { - if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) + if (__builtin_expect (islessequal (x, u_threshold) + || isgreater (x, o_threshold), 0) && _LIB_VERSION != _IEEE_ && __finite (x)) /* exp2 overflow: 44, exp2 underflow: 45 */ return __kernel_standard (x, x, 44 + (x <= o_threshold)); diff --git a/math/w_exp2f.c b/math/w_exp2f.c index 7215fcaf4cb..c4e9e941640 100644 --- a/math/w_exp2f.c +++ b/math/w_exp2f.c @@ -12,7 +12,8 @@ static const float u_threshold = (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1); float __exp2f (float x) { - if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) + if (__builtin_expect (islessequal (x, u_threshold) + || isgreater (x, o_threshold), 0) && _LIB_VERSION != _IEEE_ && __finitef (x)) /* exp2 overflow: 144, exp2 underflow: 145 */ return __kernel_standard_f (x, x, 144 + (x <= o_threshold)); diff --git a/math/w_exp2l.c b/math/w_exp2l.c index ac8d231e2c6..442a637347e 100644 --- a/math/w_exp2l.c +++ b/math/w_exp2l.c @@ -13,7 +13,8 @@ static const long double u_threshold long double __exp2l (long double x) { - if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) + if (__builtin_expect (islessequal (x, u_threshold) + || isgreater (x, o_threshold), 0) && _LIB_VERSION != _IEEE_ && __finitel (x)) /* exp2 overflow: 244, exp2 underflow: 245 */ return __kernel_standard (x, x, 244 + (x <= o_threshold)); diff --git a/math/w_j0.c b/math/w_j0.c index 361352048ca..af714ddcec9 100644 --- a/math/w_j0.c +++ b/math/w_j0.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ double j0 (double x) { - if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) /* j0(|x|>X_TLOSS) */ return __kernel_standard (x, x, 34); @@ -41,7 +42,8 @@ strong_alias (j0, j0l) double y0 (double x) { - if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) { if (x < 0.0) { diff --git a/math/w_j0f.c b/math/w_j0f.c index ff1ac3ca3d2..2ba994f08d6 100644 --- a/math/w_j0f.c +++ b/math/w_j0f.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ float j0f (float x) { - if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0) + if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0) && _LIB_VERSION != _IEEE_) /* j0(|x|>X_TLOSS) */ return __kernel_standard_f (x, x, 134); @@ -39,7 +39,8 @@ j0f (float x) float y0f (float x) { - if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) + if (__builtin_expect (islessequal (x, 0.0f) + || isgreater (x, (float) X_TLOSS), 0) && _LIB_VERSION != _IEEE_) { if (x < 0.0f) diff --git a/math/w_j0l.c b/math/w_j0l.c index a16363d53a8..117581f50b1 100644 --- a/math/w_j0l.c +++ b/math/w_j0l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ long double __j0l (long double x) { - if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) /* j0(|x|>X_TLOSS) */ return __kernel_standard (x, x, 234); @@ -39,7 +40,8 @@ weak_alias (__j0l, j0l) long double __y0l (long double x) { - if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) { if (x < 0.0L) { diff --git a/math/w_j1.c b/math/w_j1.c index 09cacb82c55..d4703bdc212 100644 --- a/math/w_j1.c +++ b/math/w_j1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ double j1 (double x) { - if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) /* j1(|x|>X_TLOSS) */ return __kernel_standard (x, x, 36); @@ -41,7 +42,8 @@ strong_alias (j1, j1l) double y1 (double x) { - if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) { if (x < 0.0) { diff --git a/math/w_j1f.c b/math/w_j1f.c index 40a2cf30228..6134f5550d1 100644 --- a/math/w_j1f.c +++ b/math/w_j1f.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ float j1f (float x) { - if (__builtin_expect (fabsf (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabsf (x), X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) /* j1(|x|>X_TLOSS) */ return __kernel_standard_f (x, x, 136); @@ -38,7 +39,8 @@ j1f (float x) float y1f (float x) { - if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) + if (__builtin_expect (islessequal (x, 0.0f) + || isgreater (x, (float) X_TLOSS), 0) && _LIB_VERSION != _IEEE_) { if (x < 0.0f) diff --git a/math/w_j1l.c b/math/w_j1l.c index 91b56e332ca..a35662ed2de 100644 --- a/math/w_j1l.c +++ b/math/w_j1l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ long double __j1l (long double x) { - if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) /* j1(|x|>X_TLOSS) */ return __kernel_standard (x, x, 236); @@ -39,7 +40,8 @@ weak_alias (__j1l, j1l) long double __y1l (long double x) { - if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) { if (x < 0.0L) { diff --git a/math/w_jn.c b/math/w_jn.c index 36fb4481633..ff0e24d0969 100644 --- a/math/w_jn.c +++ b/math/w_jn.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,8 @@ double jn (int n, double x) { - if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) /* jn(n,|x|>X_TLOSS) */ return __kernel_standard (n, x, 38); @@ -41,7 +42,8 @@ strong_alias (jn, jnl) double yn (int n, double x) { - if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) { if (x < 0.0) { diff --git a/math/w_jnf.c b/math/w_jnf.c index 7b359558f1a..7d720999782 100644 --- a/math/w_jnf.c +++ b/math/w_jnf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ float jnf (int n, float x) { - if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0) + if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0) && _LIB_VERSION != _IEEE_) /* jn(n,|x|>X_TLOSS) */ return __kernel_standard_f (n, x, 138); @@ -39,7 +39,8 @@ jnf (int n, float x) float ynf (int n, float x) { - if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) + if (__builtin_expect (islessequal (x, 0.0f) + || isgreater (x, (float) X_TLOSS), 0) && _LIB_VERSION != _IEEE_) { if (x < 0.0f) diff --git a/math/w_log.c b/math/w_log.c index b43af792c54..f7169ed2c8a 100644 --- a/math/w_log.c +++ b/math/w_log.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ double __log (double x) { - if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0) { diff --git a/math/w_log10.c b/math/w_log10.c index 75ae580c9be..ec4dcba531e 100644 --- a/math/w_log10.c +++ b/math/w_log10.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ double __log10 (double x) { - if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0) { diff --git a/math/w_log10f.c b/math/w_log10f.c index 3426e2d05b3..0c7605d19a0 100644 --- a/math/w_log10f.c +++ b/math/w_log10f.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ float __log10f (float x) { - if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0f) { diff --git a/math/w_log10l.c b/math/w_log10l.c index 6f81f3961ad..4d347b879d2 100644 --- a/math/w_log10l.c +++ b/math/w_log10l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ long double __log10l (long double x) { - if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0L) { diff --git a/math/w_log2.c b/math/w_log2.c index 6d420438d44..43e718b9fc4 100644 --- a/math/w_log2.c +++ b/math/w_log2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ double __log2 (double x) { - if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0) { diff --git a/math/w_log2f.c b/math/w_log2f.c index 7c64ad8b81d..0cf2ef9911a 100644 --- a/math/w_log2f.c +++ b/math/w_log2f.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ float __log2f (float x) { - if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0) { diff --git a/math/w_log2l.c b/math/w_log2l.c index f589768b157..f465379e262 100644 --- a/math/w_log2l.c +++ b/math/w_log2l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ long double __log2l (long double x) { - if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0L) { diff --git a/math/w_logf.c b/math/w_logf.c index 52b9befd1ba..8b88b4b8927 100644 --- a/math/w_logf.c +++ b/math/w_logf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ float __logf (float x) { - if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0f) { diff --git a/math/w_logl.c b/math/w_logl.c index 9f2bdf06ccd..75623e9fdf9 100644 --- a/math/w_logl.c +++ b/math/w_logl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -26,7 +26,7 @@ long double __logl (long double x) { - if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) { if (x == 0.0L) { diff --git a/math/w_sqrt.c b/math/w_sqrt.c index 8a435ef48e7..b49296d2a48 100644 --- a/math/w_sqrt.c +++ b/math/w_sqrt.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,7 @@ double __sqrt (double x) { - if (__builtin_expect (x < 0.0, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isless (x, 0.0), 0) && _LIB_VERSION != _IEEE_) return __kernel_standard (x, x, 26); /* sqrt(negative) */ return __ieee754_sqrt (x); diff --git a/math/w_sqrtf.c b/math/w_sqrtf.c index fc088b6222c..565504ac284 100644 --- a/math/w_sqrtf.c +++ b/math/w_sqrtf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,7 @@ float __sqrtf (float x) { - if (__builtin_expect (x < 0.0f, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) return __kernel_standard_f (x, x, 126); /* sqrt(negative) */ return __ieee754_sqrtf (x); diff --git a/math/w_sqrtl.c b/math/w_sqrtl.c index 0c446295c64..539c89a9204 100644 --- a/math/w_sqrtl.c +++ b/math/w_sqrtl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -25,7 +25,7 @@ long double __sqrtl (long double x) { - if (__builtin_expect (x < 0.0L, 0) && _LIB_VERSION != _IEEE_) + if (__builtin_expect (isless (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) return __kernel_standard (x, x, 226); /* sqrt(negative) */ return __ieee754_sqrtl (x); diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c index 1f83e319818..4366ddd2382 100644 --- a/sysdeps/ieee754/dbl-64/e_atanh.c +++ b/sysdeps/ieee754/dbl-64/e_atanh.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -47,7 +47,7 @@ __ieee754_atanh (double x) { double xa = fabs (x); double t; - if (xa < 0.5) + if (isless (xa, 0.5)) { if (__builtin_expect (xa < 0x1.0p-28, 0)) { @@ -58,11 +58,11 @@ __ieee754_atanh (double x) t = xa + xa; t = 0.5 * __log1p (t + t * xa / (1.0 - xa)); } - else if (__builtin_expect (xa < 1.0, 1)) + else if (__builtin_expect (isless (xa, 1.0), 1)) t = 0.5 * __log1p ((xa + xa) / (1.0 - xa)); else { - if (xa > 1.0) + if (isgreater (xa, 1.0)) return (x - x) / (x - x); return x / 0.0; diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c index f1becff94c9..f5af6b18606 100644 --- a/sysdeps/ieee754/dbl-64/w_exp.c +++ b/sysdeps/ieee754/dbl-64/w_exp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -29,12 +29,12 @@ u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */ double __exp (double x) { - if (__builtin_expect (x > o_threshold, 0)) + if (__builtin_expect (isgreater (x, o_threshold), 0)) { if (_LIB_VERSION != _IEEE_) return __kernel_standard_f (x, x, 6); } - else if (__builtin_expect (x < u_threshold, 0)) + else if (__builtin_expect (isless (x, u_threshold), 0)) { if (_LIB_VERSION != _IEEE_) return __kernel_standard_f (x, x, 7); diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c index d98a11ed67b..a1d03b49843 100644 --- a/sysdeps/ieee754/flt-32/e_atanhf.c +++ b/sysdeps/ieee754/flt-32/e_atanhf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -47,7 +47,7 @@ __ieee754_atanhf (float x) { float xa = fabsf (x); float t; - if (xa < 0.5f) + if (isless (xa, 0.5f)) { if (__builtin_expect (xa < 0x1.0p-28f, 0)) { @@ -58,11 +58,11 @@ __ieee754_atanhf (float x) t = xa + xa; t = 0.5f * __log1pf (t + t * xa / (1.0f - xa)); } - else if (__builtin_expect (xa < 1.0f, 1)) + else if (__builtin_expect (isless (xa, 1.0f), 1)) t = 0.5f * __log1pf ((xa + xa) / (1.0f - xa)); else { - if (xa > 1.0f) + if (isgreater (xa, 1.0f)) return (x - x) / (x - x); return x / 0.0f; diff --git a/sysdeps/ieee754/flt-32/w_expf.c b/sysdeps/ieee754/flt-32/w_expf.c index 151c5845478..b4d08246eed 100644 --- a/sysdeps/ieee754/flt-32/w_expf.c +++ b/sysdeps/ieee754/flt-32/w_expf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -29,12 +29,12 @@ u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */ float __expf (float x) { - if (__builtin_expect (x > o_threshold, 0)) + if (__builtin_expect (isgreater (x, o_threshold), 0)) { if (_LIB_VERSION != _IEEE_) return __kernel_standard_f (x, x, 106); } - else if (__builtin_expect (x < u_threshold, 0)) + else if (__builtin_expect (isless (x, u_threshold), 0)) { if (_LIB_VERSION != _IEEE_) return __kernel_standard_f (x, x, 107); diff --git a/sysdeps/ieee754/ldbl-96/w_expl.c b/sysdeps/ieee754/ldbl-96/w_expl.c index 703a0a20499..b66d03efd1f 100644 --- a/sysdeps/ieee754/ldbl-96/w_expl.c +++ b/sysdeps/ieee754/ldbl-96/w_expl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Free Software Foundation, Inc. +/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -31,12 +31,12 @@ u_threshold= -1.140019167866942050398521670162263001513e4; long double __expl (long double x) { - if (__builtin_expect (x > o_threshold, 0)) + if (__builtin_expect (isgreater (x, o_threshold), 0)) { if (_LIB_VERSION != _IEEE_) return __kernel_standard (x, x, 206); } - else if (__builtin_expect (x < u_threshold, 0)) + else if (__builtin_expect (isless (x, u_threshold), 0)) { if (_LIB_VERSION != _IEEE_) return __kernel_standard (x, x, 207);