From 92221550d72bafcd322ac5ab2a951054184b7f1a Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sun, 19 Feb 2012 11:20:18 +0100 Subject: [PATCH] Use non-signaling floating-point comparisons in math functions. --- ChangeLog | 43 +++++++++++++++++++++++++++++++++++++++ math/w_acos.c | 5 +++-- math/w_acosf.c | 5 +++-- math/w_acosh.c | 4 ++-- math/w_acoshf.c | 4 ++-- math/w_acoshl.c | 4 ++-- math/w_acosl.c | 5 +++-- math/w_asin.c | 5 +++-- math/w_asinf.c | 5 +++-- math/w_asinl.c | 5 +++-- math/w_atanh.c | 5 +++-- math/w_atanhf.c | 5 +++-- math/w_atanhl.c | 5 +++-- math/w_exp2.c | 3 ++- math/w_exp2f.c | 3 ++- math/w_exp2l.c | 3 ++- math/w_j0.c | 8 +++++--- math/w_j0f.c | 7 ++++--- math/w_j0l.c | 8 +++++--- math/w_j1.c | 8 +++++--- math/w_j1f.c | 8 +++++--- math/w_j1l.c | 8 +++++--- math/w_jn.c | 8 +++++--- math/w_jnf.c | 7 ++++--- math/w_log.c | 4 ++-- math/w_log10.c | 4 ++-- math/w_log10f.c | 4 ++-- math/w_log10l.c | 4 ++-- math/w_log2.c | 4 ++-- math/w_log2f.c | 4 ++-- math/w_log2l.c | 4 ++-- math/w_logf.c | 4 ++-- math/w_logl.c | 4 ++-- math/w_sqrt.c | 4 ++-- math/w_sqrtf.c | 4 ++-- math/w_sqrtl.c | 4 ++-- sysdeps/ieee754/dbl-64/e_atanh.c | 8 ++++---- sysdeps/ieee754/dbl-64/w_exp.c | 6 +++--- sysdeps/ieee754/flt-32/e_atanhf.c | 8 ++++---- sysdeps/ieee754/flt-32/w_expf.c | 6 +++--- sysdeps/ieee754/ldbl-96/w_expl.c | 6 +++--- 41 files changed, 161 insertions(+), 92 deletions(-) diff --git a/ChangeLog b/ChangeLog index 906b3eee02..98dce70996 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,46 @@ +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-19 Joseph Myers [BZ #9739] diff --git a/math/w_acos.c b/math/w_acos.c index 3138408ff4..0490933291 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. @@ -25,7 +25,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 0e41a2c47b..2500a7d774 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. @@ -25,7 +25,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 0bd2686464..d6329878a3 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. @@ -24,7 +24,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 c59bf94d10..f77df2b82e 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. @@ -24,7 +24,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 819bdfce10..cc823b88e9 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. @@ -24,7 +24,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 641706864e..05023b4298 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. @@ -25,7 +25,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 d4e89ce72e..0fa9487a30 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. @@ -25,7 +25,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 270961fbd0..c28edabcf6 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. @@ -25,7 +25,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 32e5273375..e4036d8806 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. @@ -25,7 +25,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 1022bd52d2..190d2e9d97 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. @@ -24,7 +24,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 3c8cf8304a..e0c5dc39b4 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. @@ -24,7 +24,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 f582acfcda..319535d172 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. @@ -24,7 +24,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 bf223265cb..7a3b0afb74 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 7215fcaf4c..c4e9e94164 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 ac8d231e2c..442a637347 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 1dff8b4d5a..f8d3724756 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. @@ -25,7 +25,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); @@ -40,7 +41,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 fc52f26d99..cef36aab1b 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. @@ -25,7 +25,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); @@ -38,7 +38,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 8d72d504f5..144f33c0db 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. @@ -25,7 +25,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); @@ -38,7 +39,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 358e0e192b..e9a5357b76 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. @@ -25,7 +25,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); @@ -40,7 +41,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 096fdf5692..29bd949eea 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. @@ -25,7 +25,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); @@ -37,7 +38,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 93e4ee458d..01b8551252 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. @@ -25,7 +25,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); @@ -38,7 +39,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 f0dd8c6038..fd3fb162f2 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. @@ -25,7 +25,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); @@ -40,7 +41,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 ef29eb45ba..36d6f6d573 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. @@ -25,7 +25,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); @@ -38,7 +38,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 efc1c4c071..ec33605f37 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. @@ -25,7 +25,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 2717ade127..fe799ad07e 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. @@ -25,7 +25,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 60737ca832..4b821f7130 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. @@ -25,7 +25,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 b26f18c2a2..0e5a137508 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. @@ -25,7 +25,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 998e5d9b70..e58e10979d 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. @@ -25,7 +25,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 6d91bf4e7a..6963ed2119 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. @@ -25,7 +25,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 e51c1bcd27..eed04ff6cc 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. @@ -25,7 +25,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 8aa27c872b..38d408f182 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. @@ -25,7 +25,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 a3139ff703..593b37d81f 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. @@ -25,7 +25,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 409a6dfa12..f6ba5423a8 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. @@ -24,7 +24,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 3c3d2f8dfc..c128e9b554 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. @@ -24,7 +24,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 5e18f44c32..2a4a0481b0 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. @@ -24,7 +24,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 9fc21abe2d..5f471b1d79 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. @@ -46,7 +46,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)) { @@ -57,11 +57,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 ee42587be4..b584ed83d9 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. @@ -28,12 +28,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 75ed6917e9..7af2f6ce67 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. @@ -46,7 +46,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)) { @@ -57,11 +57,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 5500872319..bc3b2f6790 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. @@ -28,12 +28,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 ec9d8a7884..d61c0a37bb 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. @@ -30,12 +30,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); -- 2.11.4.GIT