about summary refs log tree commit diff
path: root/math/w_powl.c
diff options
context:
space:
mode:
Diffstat (limited to 'math/w_powl.c')
-rw-r--r--math/w_powl.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/math/w_powl.c b/math/w_powl.c
index be02e1eacc..9b86651f55 100644
--- a/math/w_powl.c
+++ b/math/w_powl.c
@@ -29,13 +29,7 @@ __powl (long double x, long double y)
     {
       if (_LIB_VERSION != _IEEE_)
 	{
-	  if (isnan (x))
-	    {
-	      if (y == 0.0L)
-		/* pow(NaN,0.0) */
-		return __kernel_standard_l (x, y, 242);
-	    }
-	  else if (isfinite (x) && isfinite (y))
+	  if (isfinite (x) && isfinite (y))
 	    {
 	      if (isnan (z))
 		/* pow neg**non-int */
@@ -55,19 +49,11 @@ __powl (long double x, long double y)
 	    }
 	}
     }
-  else if (__builtin_expect (z == 0.0L, 0) && isfinite (x) && isfinite (y)
+  else if (__builtin_expect (z == 0.0L, 0)
+	   && isfinite (x) && x != 0 && isfinite (y)
 	   && _LIB_VERSION != _IEEE_)
-    {
-      if (x == 0.0L)
-	{
-	  if (y == 0.0L)
-	    /* pow(0.0,0.0) */
-	    return __kernel_standard_l (x, y, 220);
-	}
-      else
-	/* pow underflow */
-	return __kernel_standard_l (x, y, 222);
-    }
+    /* pow underflow */
+    return __kernel_standard_l (x, y, 222);
 
   return z;
 }