about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2012-02-19 11:20:18 +0100
committerAurelien Jarno <aurelien@aurel32.net>2012-02-19 11:20:18 +0100
commit92221550d72bafcd322ac5ab2a951054184b7f1a (patch)
treea48ab236bb1d2c3f29138d04500129fa230ed2e6
parentebaf36ebd838cec73c00433e7b3d41c9d126fe47 (diff)
downloadglibc-92221550d72bafcd322ac5ab2a951054184b7f1a.tar.gz
glibc-92221550d72bafcd322ac5ab2a951054184b7f1a.tar.xz
glibc-92221550d72bafcd322ac5ab2a951054184b7f1a.zip
Use non-signaling floating-point comparisons in math functions.
-rw-r--r--ChangeLog43
-rw-r--r--math/w_acos.c5
-rw-r--r--math/w_acosf.c5
-rw-r--r--math/w_acosh.c4
-rw-r--r--math/w_acoshf.c4
-rw-r--r--math/w_acoshl.c4
-rw-r--r--math/w_acosl.c5
-rw-r--r--math/w_asin.c5
-rw-r--r--math/w_asinf.c5
-rw-r--r--math/w_asinl.c5
-rw-r--r--math/w_atanh.c5
-rw-r--r--math/w_atanhf.c5
-rw-r--r--math/w_atanhl.c5
-rw-r--r--math/w_exp2.c3
-rw-r--r--math/w_exp2f.c3
-rw-r--r--math/w_exp2l.c3
-rw-r--r--math/w_j0.c8
-rw-r--r--math/w_j0f.c7
-rw-r--r--math/w_j0l.c8
-rw-r--r--math/w_j1.c8
-rw-r--r--math/w_j1f.c8
-rw-r--r--math/w_j1l.c8
-rw-r--r--math/w_jn.c8
-rw-r--r--math/w_jnf.c7
-rw-r--r--math/w_log.c4
-rw-r--r--math/w_log10.c4
-rw-r--r--math/w_log10f.c4
-rw-r--r--math/w_log10l.c4
-rw-r--r--math/w_log2.c4
-rw-r--r--math/w_log2f.c4
-rw-r--r--math/w_log2l.c4
-rw-r--r--math/w_logf.c4
-rw-r--r--math/w_logl.c4
-rw-r--r--math/w_sqrt.c4
-rw-r--r--math/w_sqrtf.c4
-rw-r--r--math/w_sqrtl.c4
-rw-r--r--sysdeps/ieee754/dbl-64/e_atanh.c8
-rw-r--r--sysdeps/ieee754/dbl-64/w_exp.c6
-rw-r--r--sysdeps/ieee754/flt-32/e_atanhf.c8
-rw-r--r--sysdeps/ieee754/flt-32/w_expf.c6
-rw-r--r--sysdeps/ieee754/ldbl-96/w_expl.c6
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  <aurelien@aurel32.net>
+
+	* 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  <joseph@codesourcery.com>
 
 	[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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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 <drepper@gmail.com>, 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);