summaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-128/e_powl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/e_powl.c')
-rw-r--r--sysdeps/ieee754/ldbl-128/e_powl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sysdeps/ieee754/ldbl-128/e_powl.c b/sysdeps/ieee754/ldbl-128/e_powl.c
index e6cd9751c2..a344840090 100644
--- a/sysdeps/ieee754/ldbl-128/e_powl.c
+++ b/sysdeps/ieee754/ldbl-128/e_powl.c
@@ -165,11 +165,12 @@ __ieee754_powl (_Float128 x, _Float128 y)
/* y==zero: x**0 = 1 */
- if ((iy | q.parts32.w1 | q.parts32.w2 | q.parts32.w3) == 0)
+ if ((iy | q.parts32.w1 | q.parts32.w2 | q.parts32.w3) == 0
+ && !issignaling (x))
return one;
/* 1.0**y = 1; -1.0**+-Inf = 1 */
- if (x == one)
+ if (x == one && !issignaling (y))
return one;
if (x == -1 && iy == 0x7fff0000
&& (q.parts32.w1 | q.parts32.w2 | q.parts32.w3) == 0)