This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Improve libm-test XFAILing for ibm128-libgcc [committed]
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Mon, 9 Jan 2017 22:42:47 +0000
- Subject: Improve libm-test XFAILing for ibm128-libgcc [committed]
- Authentication-results: sourceware.org; auth=none
This patch further improves XFAILing for ibm128-libgcc of tests in
auto-libm-test-*.
The bulk of the cases needing XFAILing are
xfail-rounding:ibm128-libgcc used for inputs where (possibly after
rounding the inputs to another floating-point type) the result
overflows (and the result in non-default rounding modes may be wildly
wrong with unpatched libgcc) or underflows near 0 (and the result in
non-default rounding modes may end up having the wrong sign). This
patch makes gen-auto-libm-tests detect such cases and apply
xfail-rounding:ibm128-libgcc automatically to them, so most of the
manual XFAILs in auto-libm-test-in are no longer needed (some are
still needed if e.g. the result is very close to overflow, resulting
in an internal overflow in libgcc in some rounding modes). A few
manual XFAILs are added for cases not covered by this
gen-auto-libm-tests change, and a few existing such XFAILs are left
in.
Tested for powerpc. Committed.
2017-01-09 Joseph Myers <joseph@codesourcery.com>
* math/gen-auto-libm-tests.c (output_for_one_input_case): Apply
xfail-rounding:ibm128-libgcc automatically to tests overflowing
and those that can underflow to zero.
* math/auto-libm-test-in: Remove most XFAILs for ibm128-libgcc and
add others.
* math/auto-libm-test-out: Regenerated.
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 2bce299..52272e8 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -397,10 +397,10 @@ atan2 min_subnorm -max
atan2 -min_subnorm -max
atan2 1 max
atan2 -1 max
-atan2 min max xfail-rounding:ibm128-libgcc
-atan2 -min max xfail-rounding:ibm128-libgcc
-atan2 min_subnorm max xfail-rounding:ibm128-libgcc
-atan2 -min_subnorm max xfail-rounding:ibm128-libgcc
+atan2 min max
+atan2 -min max
+atan2 min_subnorm max
+atan2 -min_subnorm max
atan2 min 1
atan2 -min 1
atan2 min_subnorm 1
@@ -610,14 +610,14 @@ ccos 0.75 710.5
ccos 0.75 -710.5
ccos -0.75 710.5
ccos -0.75 -710.5
-ccos 0.75 11357.25 xfail-rounding:ibm128-libgcc
-ccos 0.75 -11357.25 xfail-rounding:ibm128-libgcc
-ccos -0.75 11357.25 xfail-rounding:ibm128-libgcc
-ccos -0.75 -11357.25 xfail-rounding:ibm128-libgcc
+ccos 0.75 11357.25
+ccos 0.75 -11357.25
+ccos -0.75 11357.25
+ccos -0.75 -11357.25
ccos 0x1p-149 180
-ccos 0x1p-1074 1440 xfail-rounding:ibm128-libgcc
-ccos 0x1p-16434 22730 xfail-rounding:ibm128-libgcc
+ccos 0x1p-1074 1440
+ccos 0x1p-16434 22730
ccos min_subnorm_p120 0x1p-120
ccos 0x1p-120 min_subnorm_p120
@@ -643,14 +643,14 @@ ccosh 710.5 0.75
ccosh -710.5 0.75
ccosh 710.5 -0.75
ccosh -710.5 -0.75
-ccosh 11357.25 0.75 xfail-rounding:ibm128-libgcc
-ccosh -11357.25 0.75 xfail-rounding:ibm128-libgcc
-ccosh 11357.25 -0.75 xfail-rounding:ibm128-libgcc
-ccosh -11357.25 -0.75 xfail-rounding:ibm128-libgcc
+ccosh 11357.25 0.75
+ccosh -11357.25 0.75
+ccosh 11357.25 -0.75
+ccosh -11357.25 -0.75
ccosh 180 0x1p-149
-ccosh 1440 0x1p-1074 xfail-rounding:ibm128-libgcc
-ccosh 22730 0x1p-16434 xfail-rounding:ibm128-libgcc
+ccosh 1440 0x1p-1074
+ccosh 22730 0x1p-16434
ccosh min_subnorm_p120 0x1p-120
ccosh 0x1p-120 min_subnorm_p120
@@ -683,16 +683,16 @@ cexp 88.75 0.75
cexp -95 0.75
cexp 709.8125 0.75
cexp -720 0.75
-cexp 11356.5625 0.75 xfail-rounding:ibm128-libgcc
+cexp 11356.5625 0.75
cexp -11370 0.75
cexp 180 0x1p-149
-cexp 1440 0x1p-1074 xfail-rounding:ibm128-libgcc
-cexp 22730 0x1p-16434 xfail-rounding:ibm128-libgcc
+cexp 1440 0x1p-1074
+cexp 22730 0x1p-16434
-cexp 1e6 0 xfail-rounding:ibm128-libgcc
-cexp 1e6 min xfail-rounding:ibm128-libgcc
-cexp 1e6 -min xfail-rounding:ibm128-libgcc
+cexp 1e6 0
+cexp 1e6 min
+cexp 1e6 -min
cexp 1 min
cexp 1 -min
@@ -799,24 +799,24 @@ clog 0x1p-1074 -0x1.fp+1023
clog -0x1p-1074 -0x1.fp+1023
clog -0x1.fp+1023 0x1p-1074
clog -0x1.fp+1023 -0x1p-1074
-clog 0x1.fp+1023 0x1p-1074 xfail-rounding:ibm128-libgcc
-clog 0x1.fp+1023 -0x1p-1074 xfail-rounding:ibm128-libgcc
+clog 0x1.fp+1023 0x1p-1074
+clog 0x1.fp+1023 -0x1p-1074
clog 0x1p-16445 0x1.fp+16383
clog -0x1p-16445 0x1.fp+16383
clog 0x1p-16445 -0x1.fp+16383
clog -0x1p-16445 -0x1.fp+16383
clog -0x1.fp+16383 0x1p-16445
clog -0x1.fp+16383 -0x1p-16445
-clog 0x1.fp+16383 0x1p-16445 xfail-rounding:ibm128-libgcc
-clog 0x1.fp+16383 -0x1p-16445 xfail-rounding:ibm128-libgcc
+clog 0x1.fp+16383 0x1p-16445
+clog 0x1.fp+16383 -0x1p-16445
clog 0x1p-16494 0x1.fp+16383
clog -0x1p-16494 0x1.fp+16383
clog 0x1p-16494 -0x1.fp+16383
clog -0x1p-16494 -0x1.fp+16383
clog -0x1.fp+16383 0x1p-16494
clog -0x1.fp+16383 -0x1p-16494
-clog 0x1.fp+16383 0x1p-16494 xfail-rounding:ibm128-libgcc
-clog 0x1.fp+16383 -0x1p-16494 xfail-rounding:ibm128-libgcc
+clog 0x1.fp+16383 0x1p-16494
+clog 0x1.fp+16383 -0x1p-16494
clog 1.0 0x1.234566p-10
clog -1.0 0x1.234566p-20
@@ -992,24 +992,24 @@ clog10 0x1p-1074 -0x1.fp+1023
clog10 -0x1p-1074 -0x1.fp+1023
clog10 -0x1.fp+1023 0x1p-1074
clog10 -0x1.fp+1023 -0x1p-1074
-clog10 0x1.fp+1023 0x1p-1074 xfail-rounding:ibm128-libgcc
-clog10 0x1.fp+1023 -0x1p-1074 xfail-rounding:ibm128-libgcc
+clog10 0x1.fp+1023 0x1p-1074
+clog10 0x1.fp+1023 -0x1p-1074
clog10 0x1p-16445 0x1.fp+16383
clog10 -0x1p-16445 0x1.fp+16383
clog10 0x1p-16445 -0x1.fp+16383
clog10 -0x1p-16445 -0x1.fp+16383
clog10 -0x1.fp+16383 0x1p-16445
clog10 -0x1.fp+16383 -0x1p-16445
-clog10 0x1.fp+16383 0x1p-16445 xfail-rounding:ibm128-libgcc
-clog10 0x1.fp+16383 -0x1p-16445 xfail-rounding:ibm128-libgcc
+clog10 0x1.fp+16383 0x1p-16445
+clog10 0x1.fp+16383 -0x1p-16445
clog10 0x1p-16494 0x1.fp+16383
clog10 -0x1p-16494 0x1.fp+16383
clog10 0x1p-16494 -0x1.fp+16383
clog10 -0x1p-16494 -0x1.fp+16383
clog10 -0x1.fp+16383 0x1p-16494
clog10 -0x1.fp+16383 -0x1p-16494
-clog10 0x1.fp+16383 0x1p-16494 xfail-rounding:ibm128-libgcc
-clog10 0x1.fp+16383 -0x1p-16494 xfail-rounding:ibm128-libgcc
+clog10 0x1.fp+16383 0x1p-16494
+clog10 0x1.fp+16383 -0x1p-16494
clog10 1.0 0x1.234566p-10
clog10 -1.0 0x1.234566p-20
@@ -1175,8 +1175,8 @@ cosh 0x2.f5d128p+0
cosh -0xd.0c03p+0
cosh -0x3.d04328728b72cp-4
cosh 0x1.629188p+4
-cosh max no-test-inline xfail-rounding:ibm128-libgcc
-cosh -max no-test-inline xfail-rounding:ibm128-libgcc
+cosh max no-test-inline
+cosh -max no-test-inline
cosh min
cosh -min
cosh min_subnorm
@@ -1190,22 +1190,22 @@ cosh 0x5.96a7ep+4
cosh 0x5.96a7e8p+4
cosh -0x5.96a7ep+4
cosh -0x5.96a7e8p+4
-cosh 0x2.c679d1f73f0fap+8 xfail-rounding:ibm128-libgcc
-cosh 0x2.c679d1f73f0fcp+8 xfail-rounding:ibm128-libgcc
-cosh -0x2.c679d1f73f0fap+8 xfail-rounding:ibm128-libgcc
-cosh -0x2.c679d1f73f0fcp+8 xfail-rounding:ibm128-libgcc
+cosh 0x2.c679d1f73f0fap+8
+cosh 0x2.c679d1f73f0fcp+8
+cosh -0x2.c679d1f73f0fap+8
+cosh -0x2.c679d1f73f0fcp+8
cosh 0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ibm128-libgcc
cosh 0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ibm128-libgcc
cosh -0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ibm128-libgcc
cosh -0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ibm128-libgcc
-cosh 0x2.c5d37700c6bb03a4p+12 no-test-inline xfail-rounding:ibm128-libgcc
-cosh 0x2.c5d37700c6bb03a8p+12 no-test-inline xfail-rounding:ibm128-libgcc
-cosh -0x2.c5d37700c6bb03a4p+12 no-test-inline xfail-rounding:ibm128-libgcc
-cosh -0x2.c5d37700c6bb03a8p+12 no-test-inline xfail-rounding:ibm128-libgcc
-cosh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline xfail-rounding:ibm128-libgcc
-cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ibm128-libgcc
-cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline xfail-rounding:ibm128-libgcc
-cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ibm128-libgcc
+cosh 0x2.c5d37700c6bb03a4p+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a8p+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a4p+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a8p+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
cpow 1 0 0 0 ignore-zero-inf-sign
cpow 2 0 10 0 ignore-zero-inf-sign
@@ -1234,19 +1234,19 @@ csin 0.75 710.5
csin 0.75 -710.5
csin -0.75 710.5
csin -0.75 -710.5
-csin 0.75 11357.25 xfail-rounding:ibm128-libgcc
-csin 0.75 -11357.25 xfail-rounding:ibm128-libgcc
-csin -0.75 11357.25 xfail-rounding:ibm128-libgcc
-csin -0.75 -11357.25 xfail-rounding:ibm128-libgcc
+csin 0.75 11357.25
+csin 0.75 -11357.25
+csin -0.75 11357.25
+csin -0.75 -11357.25
-csin 0.75 1e6 xfail-rounding:ibm128-libgcc
-csin 0.75 -1e6 xfail-rounding:ibm128-libgcc
-csin -0.75 1e6 xfail-rounding:ibm128-libgcc
-csin -0.75 -1e6 xfail-rounding:ibm128-libgcc
+csin 0.75 1e6
+csin 0.75 -1e6
+csin -0.75 1e6
+csin -0.75 -1e6
csin 0x1p-149 180
-csin 0x1p-1074 1440 xfail-rounding:ibm128-libgcc
-csin 0x1p-16434 22730 xfail-rounding:ibm128-libgcc
+csin 0x1p-1074 1440
+csin 0x1p-16434 22730
csin min 1
csin -min 1
@@ -1269,19 +1269,19 @@ csinh 710.5 0.75
csinh -710.5 0.75
csinh 710.5 -0.75
csinh -710.5 -0.75
-csinh 11357.25 0.75 xfail-rounding:ibm128-libgcc
-csinh -11357.25 0.75 xfail-rounding:ibm128-libgcc
-csinh 11357.25 -0.75 xfail-rounding:ibm128-libgcc
-csinh -11357.25 -0.75 xfail-rounding:ibm128-libgcc
+csinh 11357.25 0.75
+csinh -11357.25 0.75
+csinh 11357.25 -0.75
+csinh -11357.25 -0.75
-csinh 1e6 0.75 xfail-rounding:ibm128-libgcc
-csinh -1e6 0.75 xfail-rounding:ibm128-libgcc
-csinh 1e6 -0.75 xfail-rounding:ibm128-libgcc
-csinh -1e6 -0.75 xfail-rounding:ibm128-libgcc
+csinh 1e6 0.75
+csinh -1e6 0.75
+csinh 1e6 -0.75
+csinh -1e6 -0.75
csinh 180 0x1p-149
-csinh 1440 0x1p-1074 xfail-rounding:ibm128-libgcc
-csinh 22730 0x1p-16434 xfail-rounding:ibm128-libgcc
+csinh 1440 0x1p-1074
+csinh 22730 0x1p-16434
csinh 1 min
csinh 1 -min
@@ -1408,8 +1408,8 @@ ctan 1 45
ctan 1 47
ctan 1 355
ctan 1 365
-ctan 1 5680 xfail-rounding:ibm128-libgcc
-ctan 1 5690 xfail-rounding:ibm128-libgcc
+ctan 1 5680
+ctan 1 5690
ctan 0x3.243f6cp-1 0
@@ -1417,10 +1417,10 @@ ctan 0x1p127 1
ctan 0x1p1023 1
ctan 0x1p16383 1
-ctan 50000 50000 xfail-rounding:ibm128-libgcc
-ctan 50000 -50000 xfail-rounding:ibm128-libgcc
-ctan -50000 50000 xfail-rounding:ibm128-libgcc
-ctan -50000 -50000 xfail-rounding:ibm128-libgcc
+ctan 50000 50000
+ctan 50000 -50000
+ctan -50000 50000
+ctan -50000 -50000
ctan 0x1.921fb6p+0 0x1p-149
ctan 0x1.921fb54442d18p+0 0x1p-1074
@@ -1449,8 +1449,8 @@ ctanh 45 1
ctanh 47 1
ctanh 355 1
ctanh 365 1
-ctanh 5680 1 xfail-rounding:ibm128-libgcc
-ctanh 5690 1 xfail-rounding:ibm128-libgcc
+ctanh 5680 1
+ctanh 5690 1
ctanh 0 0x3.243f6cp-1
@@ -1458,10 +1458,10 @@ ctanh 1 0x1p127
ctanh 1 0x1p1023
ctanh 1 0x1p16383
-ctanh 50000 50000 xfail-rounding:ibm128-libgcc
-ctanh 50000 -50000 xfail-rounding:ibm128-libgcc
-ctanh -50000 50000 xfail-rounding:ibm128-libgcc
-ctanh -50000 -50000 xfail-rounding:ibm128-libgcc
+ctanh 50000 50000
+ctanh 50000 -50000
+ctanh -50000 50000
+ctanh -50000 -50000
ctanh 0x1p-149 0x1.921fb6p+0
ctanh 0x1p-1074 0x1.921fb54442d18p+0
@@ -1666,12 +1666,12 @@ exp 0.75
exp 50.0
exp 88.72269439697265625
exp 709.75
-exp 1000.0 xfail-rounding:ibm128-libgcc
-exp 710 xfail-rounding:ibm128-libgcc
+exp 1000.0
+exp 710
exp -1234
-exp 0x2.c679d1f73f0fb628p+8 xfail-rounding:ibm128-libgcc
-exp 1e5 xfail-rounding:ibm128-libgcc
-exp max xfail-rounding:ibm128-libgcc
+exp 0x2.c679d1f73f0fb628p+8
+exp 1e5
+exp max
exp -7.4444006192138124e+02
exp -0x1.75f113c30b1c8p+9
exp -max
@@ -1710,22 +1710,22 @@ exp 0x5.8b90b8p+4
exp 0x5.8b90cp+4
exp -0x5.75628p+4
exp -0x5.756278p+4
-exp 0x2.c5c85fdf473dep+8 xfail-rounding:ibm128-libgcc
-exp 0x2.c5c85fdf473ep+8 xfail-rounding:ibm128-libgcc
+exp 0x2.c5c85fdf473dep+8
+exp 0x2.c5c85fdf473ep+8
exp -0x2.c4657baf579a6p+8
exp -0x2.c4657baf579a4p+8
exp 0x2.c5c85fdf473de6ab278ece600fp+8 xfail-rounding:ibm128-libgcc
exp 0x2.c5c85fdf473de6ab278ece601p+8 xfail-rounding:ibm128-libgcc
exp -0x2.9fa8dcb9092a538b3f2ee2ca67p+8 xfail-rounding:ibm128-libgcc
exp -0x2.9fa8dcb9092a538b3f2ee2ca66p+8 xfail-rounding:ibm128-libgcc
-exp 0x2.c5c85fdf473de6acp+12 xfail-rounding:ibm128-libgcc
-exp 0x2.c5c85fdf473de6bp+12 xfail-rounding:ibm128-libgcc
+exp 0x2.c5c85fdf473de6acp+12
+exp 0x2.c5c85fdf473de6bp+12
exp -0x2.c5b2319c4843accp+12
exp -0x2.c5b2319c4843acbcp+12
exp -0x2.c5bd48bdc7c0c9b8p+12
exp -0x2.c5bd48bdc7c0c9b4p+12
-exp 0x2.c5c85fdf473de6af278ece600fcap+12 xfail-rounding:ibm128-libgcc
-exp 0x2.c5c85fdf473de6af278ece600fccp+12 xfail-rounding:ibm128-libgcc
+exp 0x2.c5c85fdf473de6af278ece600fcap+12
+exp 0x2.c5c85fdf473de6af278ece600fccp+12
exp -0x2.c5b2319c4843acbff21591e99cccp+12
exp -0x2.c5b2319c4843acbff21591e99ccap+12
exp min
@@ -1749,17 +1749,17 @@ exp10 36
exp10 -36
exp10 305
exp10 -305
-exp10 4932 xfail-rounding:ibm128-libgcc
+exp10 4932
exp10 -4932
exp10 -0x1.343793004f503232p12
-exp10 1e5 xfail-rounding:ibm128-libgcc
+exp10 1e5
exp10 -1e5
-exp10 1e6 xfail-rounding:ibm128-libgcc
+exp10 1e6
exp10 -1e6
-exp10 max xfail-rounding:ibm128-libgcc
+exp10 max
exp10 -max
exp10 0.75
-exp10 0x1.348e45573a1dd72cp+8 xfail-rounding:ibm128-libgcc
+exp10 0x1.348e45573a1dd72cp+8
exp10 -0x1.33aa03p+8
exp10 -0x1.33ad17p+8
exp10 -0x1.33afcap+8
@@ -1793,14 +1793,14 @@ exp10 0x1.34413509f79fef2f625b0205a88p+8 xfail:ibm128-libgcc
exp10 0x1.34413509f79fef2f625b0205a9p+8 xfail:ibm128-libgcc
exp10 -0x1.23b2b470ae9318183ba772361cp+8 xfail-rounding:ibm128-libgcc
exp10 -0x1.23b2b470ae9318183ba772361b8p+8 xfail-rounding:ibm128-libgcc
-exp10 0x1.34413509f79fef3p+12 xfail-rounding:ibm128-libgcc
-exp10 0x1.34413509f79fef32p+12 xfail-rounding:ibm128-libgcc
+exp10 0x1.34413509f79fef3p+12
+exp10 0x1.34413509f79fef32p+12
exp10 -0x1.343793004f503232p+12
exp10 -0x1.343793004f50323p+12
exp10 -0x1.343c6405237810b2p+12
exp10 -0x1.343c6405237810bp+12
-exp10 0x1.34413509f79fef311f12b35816f9p+12 xfail-rounding:ibm128-libgcc
-exp10 0x1.34413509f79fef311f12b35816fap+12 xfail-rounding:ibm128-libgcc
+exp10 0x1.34413509f79fef311f12b35816f9p+12
+exp10 0x1.34413509f79fef311f12b35816fap+12
exp10 -0x1.343793004f503231a589bac27c39p+12
exp10 -0x1.343793004f503231a589bac27c38p+12
exp10 min
@@ -1819,9 +1819,9 @@ exp2 0
exp2 -0
exp2 10
exp2 -1
-exp2 1e6 xfail-rounding:ibm128-libgcc
+exp2 1e6
exp2 -1e6
-exp2 max xfail-rounding:ibm128-libgcc
+exp2 max
exp2 -max
exp2 0.75
exp2 100.5
@@ -1837,7 +1837,7 @@ exp2 -1020.5
exp2 -1021.5
exp2 1023
exp2 -1074
-exp2 16383 xfail-rounding:ibm128-libgcc
+exp2 16383
exp2 -16400
exp2 -126.125
exp2 -126.25
@@ -1884,22 +1884,22 @@ exp2 0x7.fffff8p+4
exp2 0x8.00001p+4
exp2 -0x7.e00008p+4
exp2 -0x7.dffff8p+4
-exp2 0x3.ffffffffffffep+8 xfail-rounding:ibm128-libgcc
-exp2 0x4.0000000000004p+8 xfail-rounding:ibm128-libgcc
+exp2 0x3.ffffffffffffep+8
+exp2 0x4.0000000000004p+8
exp2 -0x3.fe00000000002p+8
exp2 -0x3.fdffffffffffep+8
exp2 0x3.fffffffffffffffa3aae26b51fp+8 xfail-rounding:ibm128-libgcc
exp2 0x3.fffffffffffffffa3aae26b52p+8 xfail-rounding:ibm128-libgcc
exp2 -0x3.c9000000000000000000000001p+8
exp2 -0x3.c8ffffffffffffffffffffffffp+8
-exp2 0x3.fffffffffffffffcp+12 xfail-rounding:ibm128-libgcc
-exp2 0x4.0000000000000008p+12 xfail-rounding:ibm128-libgcc
+exp2 0x3.fffffffffffffffcp+12
+exp2 0x4.0000000000000008p+12
exp2 -0x3.ffe0000000000004p+12
exp2 -0x3.ffdffffffffffffcp+12
-exp2 -0x3.fff0000000000004p+12 xfail-rounding:ibm128-libgcc
-exp2 -0x3.ffeffffffffffffcp+12 xfail-rounding:ibm128-libgcc
-exp2 0x3.fffffffffffffffffffffffffffep+12 xfail-rounding:ibm128-libgcc
-exp2 0x4.0000000000000000000000000004p+12 xfail-rounding:ibm128-libgcc
+exp2 -0x3.fff0000000000004p+12
+exp2 -0x3.ffeffffffffffffcp+12
+exp2 0x3.fffffffffffffffffffffffffffep+12
+exp2 0x4.0000000000000000000000000004p+12
exp2 -0x3.ffe0000000000000000000000002p+12
exp2 -0x3.ffdffffffffffffffffffffffffep+12
exp2 min
@@ -1942,7 +1942,7 @@ expm1 90
expm1 100
expm1 127.0
expm1 500.0
-expm1 11356.25 xfail-rounding:ibm128-libgcc
+expm1 11356.25
expm1 -10.0
expm1 -16.0
expm1 -17.0
@@ -1963,8 +1963,8 @@ expm1 -100.0
expm1 -1000.0
expm1 -10000.0
expm1 -100000.0
-expm1 100000.0 xfail-rounding:ibm128-libgcc
-expm1 max xfail-rounding:ibm128-libgcc
+expm1 100000.0
+expm1 max
expm1 -max
expm1 0x1p-2
expm1 -0x1p-2
@@ -1997,9 +1997,9 @@ expm1 0x4.857de8p+4
expm1 0x5.dfeb68p-4
expm1 0x4.0000000000000028p-16384
expm1 min
-expm1 -min xfail-rounding:ibm128-libgcc
+expm1 -min
expm1 min_subnorm
-expm1 -min_subnorm xfail-rounding:ibm128-libgcc
+expm1 -min_subnorm
fma 1.0 2.0 3.0
fma 1.25 0.75 0.0625
@@ -2330,7 +2330,7 @@ hypot min min no-test-inline
hypot min_subnorm min_subnorm no-test-inline
hypot min min_subnorm no-test-inline
hypot 0x1.fp127 0x1.fp127
-hypot 0x1.fp1023 0x1.fp1023 xfail-rounding:ibm128-libgcc
+hypot 0x1.fp1023 0x1.fp1023
hypot 0x1.fp16383 0x1.fp16383 no-test-inline xfail-rounding:ibm128-libgcc
hypot 0x1p-127 0x1p-149
@@ -2492,7 +2492,7 @@ jn 10 -min
jn 10 min_subnorm
jn 10 -min_subnorm
-lgamma max xfail-rounding:ibm128-libgcc
+lgamma max
lgamma 1
lgamma 3
lgamma 0.5
@@ -2562,10 +2562,10 @@ lgamma 0x5.d53649e2d4674p+1012
lgamma 0x5.d53649e2d46c8p+1012 xfail-rounding:ibm128-libgcc
lgamma 0x5.d53649e2d469dbc1f01e99fd52p+1012 xfail:binary64 xfail-rounding:ibm128-libgcc
lgamma 0x5.d53649e2d469dbc1f01e99fd7cp+1012 xfail:binary64 xfail-rounding:ibm128-libgcc
-lgamma 0x5.c6aa645fffef5f5p+16368 xfail-rounding:ibm128-libgcc
-lgamma 0x5.c6aa645fffef5ff8p+16368 xfail-rounding:ibm128-libgcc
-lgamma 0x5.c6aa645fffef5fa912b9b480f7acp+16368 xfail:intel96 xfail:m68k96 xfail-rounding:ibm128-libgcc
-lgamma 0x5.c6aa645fffef5fa912b9b480f8p+16368 xfail:intel96 xfail:m68k96 xfail-rounding:ibm128-libgcc
+lgamma 0x5.c6aa645fffef5f5p+16368
+lgamma 0x5.c6aa645fffef5ff8p+16368
+lgamma 0x5.c6aa645fffef5fa912b9b480f7acp+16368 xfail:intel96 xfail:m68k96
+lgamma 0x5.c6aa645fffef5fa912b9b480f8p+16368 xfail:intel96 xfail:m68k96
lgamma -0x1.fa471547c2fe5p+1
lgamma -0x1.9260dcp+1
@@ -3226,11 +3226,11 @@ pow -0 0x1fffffe
pow -0 0x1.fffffffffffffp+52
pow -0 0x1.fffffffffffffp+53
pow -0 0x1.fffffffffffffffep+63
-pow -0 0x1.fffffffffffffffep+64
-pow -0 0x1.ffffffffffffffffffffffffff8p+105
-pow -0 0x1.ffffffffffffffffffffffffff8p+106
-pow -0 0x1.ffffffffffffffffffffffffffffp+112
-pow -0 0x1.ffffffffffffffffffffffffffffp+113
+pow -0 0x1.fffffffffffffffep+64 xfail-rounding:ibm128-libgcc
+pow -0 0x1.ffffffffffffffffffffffffff8p+105 xfail-rounding:ibm128-libgcc
+pow -0 0x1.ffffffffffffffffffffffffff8p+106 xfail-rounding:ibm128-libgcc
+pow -0 0x1.ffffffffffffffffffffffffffffp+112 xfail-rounding:ibm128-libgcc
+pow -0 0x1.ffffffffffffffffffffffffffffp+113 xfail-rounding:ibm128-libgcc
# pow (+0, y) == +0 for y > 0 and not an odd integer.
pow 0.0 4
@@ -3261,11 +3261,11 @@ pow -1.0 -0x1fffffe
pow -1.0 -0x1.fffffffffffffp+52
pow -1.0 -0x1.fffffffffffffp+53
pow -1.0 -0x1.fffffffffffffffep+63
-pow -1.0 -0x1.fffffffffffffffep+64
-pow -1.0 -0x1.ffffffffffffffffffffffffff8p+105
-pow -1.0 -0x1.ffffffffffffffffffffffffff8p+106
-pow -1.0 -0x1.ffffffffffffffffffffffffffffp+112
-pow -1.0 -0x1.ffffffffffffffffffffffffffffp+113
+pow -1.0 -0x1.fffffffffffffffep+64 xfail-rounding:ibm128-libgcc
+pow -1.0 -0x1.ffffffffffffffffffffffffff8p+105 xfail-rounding:ibm128-libgcc
+pow -1.0 -0x1.ffffffffffffffffffffffffff8p+106 xfail-rounding:ibm128-libgcc
+pow -1.0 -0x1.ffffffffffffffffffffffffffffp+112 xfail-rounding:ibm128-libgcc
+pow -1.0 -0x1.ffffffffffffffffffffffffffffp+113 xfail-rounding:ibm128-libgcc
pow -1.0 -max
pow -1.0 0xffffff
@@ -3273,11 +3273,11 @@ pow -1.0 0x1fffffe
pow -1.0 0x1.fffffffffffffp+52
pow -1.0 0x1.fffffffffffffp+53
pow -1.0 0x1.fffffffffffffffep+63
-pow -1.0 0x1.fffffffffffffffep+64
-pow -1.0 0x1.ffffffffffffffffffffffffff8p+105
-pow -1.0 0x1.ffffffffffffffffffffffffff8p+106
-pow -1.0 0x1.ffffffffffffffffffffffffffffp+112
-pow -1.0 0x1.ffffffffffffffffffffffffffffp+113
+pow -1.0 0x1.fffffffffffffffep+64 xfail-rounding:ibm128-libgcc
+pow -1.0 0x1.ffffffffffffffffffffffffff8p+105 xfail-rounding:ibm128-libgcc
+pow -1.0 0x1.ffffffffffffffffffffffffff8p+106 xfail-rounding:ibm128-libgcc
+pow -1.0 0x1.ffffffffffffffffffffffffffffp+112 xfail-rounding:ibm128-libgcc
+pow -1.0 0x1.ffffffffffffffffffffffffffffp+113 xfail-rounding:ibm128-libgcc
pow -1.0 max
pow -2.0 126
@@ -3894,8 +3894,8 @@ sinh -0x1.3dda8ap+0
sinh -0x5.ee9218p-4
sinh -0x1.bcfc98p+0
sinh -0x6.9bbb6df7c5d08p-4
-sinh max no-test-inline xfail-rounding:ibm128-libgcc
-sinh -max no-test-inline xfail-rounding:ibm128-libgcc
+sinh max no-test-inline
+sinh -max no-test-inline
sinh min
sinh -min
sinh min_subnorm
@@ -3904,13 +3904,13 @@ sinh -min_subnorm
sinh 0x5.96a7ep+4
sinh 0x5.96a7e8p+4
sinh 0x2.c679d1f73f0fap+8
-sinh 0x2.c679d1f73f0fcp+8 xfail-rounding:ibm128-libgcc
+sinh 0x2.c679d1f73f0fcp+8
sinh 0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ibm128-libgcc
sinh 0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ibm128-libgcc
-sinh 0x2.c5d37700c6bb03a4p+12 no-test-inline xfail-rounding:ibm128-libgcc
-sinh 0x2.c5d37700c6bb03a8p+12 no-test-inline xfail-rounding:ibm128-libgcc
-sinh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline xfail-rounding:ibm128-libgcc
-sinh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ibm128-libgcc
+sinh 0x2.c5d37700c6bb03a4p+12 no-test-inline
+sinh 0x2.c5d37700c6bb03a8p+12 no-test-inline
+sinh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
+sinh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
sqrt 0
sqrt -0
@@ -4210,18 +4210,18 @@ tgamma 0x1p-149
tgamma -0x1p-149
tgamma 0x1p-1023
tgamma -0x1p-1023
-tgamma 0x1p-1024 spurious-overflow:binary64 spurious-overflow:ibm128 xfail-rounding:ibm128-libgcc
-tgamma -0x1p-1024 xfail-rounding:ibm128-libgcc
-tgamma 0x1p-1074 xfail-rounding:ibm128-libgcc
-tgamma -0x1p-1074 xfail-rounding:ibm128-libgcc
-tgamma 0x1p-16383 xfail-rounding:ibm128-libgcc
-tgamma -0x1p-16383 xfail-rounding:ibm128-libgcc
+tgamma 0x1p-1024 spurious-overflow:binary64 spurious-overflow:ibm128
+tgamma -0x1p-1024
+tgamma 0x1p-1074
+tgamma -0x1p-1074
+tgamma 0x1p-16383
+tgamma -0x1p-16383
tgamma 0x1p-16384 spurious-overflow:intel96 spurious-overflow:m68k96 spurious-overflow:binary128
-tgamma -0x1p-16384 xfail-rounding:ibm128-libgcc
-tgamma 0x1p-16445 xfail-rounding:ibm128-libgcc
-tgamma -0x1p-16445 xfail-rounding:ibm128-libgcc
-tgamma 0x1p-16494 xfail-rounding:ibm128-libgcc
-tgamma -0x1p-16494 xfail-rounding:ibm128-libgcc
+tgamma -0x1p-16384
+tgamma 0x1p-16445
+tgamma -0x1p-16445
+tgamma 0x1p-16494
+tgamma -0x1p-16494
tgamma 0x8.00001p0
tgamma 0x7.fffff8p0
tgamma 0x7.000008p0
@@ -4587,17 +4587,17 @@ tgamma 33.5
tgamma 34.5
tgamma 0x2.30a43cp+4
tgamma 0x2.30a44p+4
-tgamma 0xa.b9fd72b0fb238p+4 xfail-rounding:ibm128-libgcc
-tgamma 0xa.b9fd72b0fb24p+4 xfail-rounding:ibm128-libgcc
-tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f4p+4 xfail-rounding:ibm128-libgcc
-tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f8p+4 xfail-rounding:ibm128-libgcc
-tgamma 0x6.db8c603359a97108p+8 xfail-rounding:ibm128-libgcc
-tgamma 0x6.db8c603359a9711p+8 xfail-rounding:ibm128-libgcc
-tgamma 0x6.db8c603359a971081bc4a2e9dfdp+8 xfail-rounding:ibm128-libgcc
-tgamma 0x6.db8c603359a971081bc4a2e9dfd4p+8 xfail-rounding:ibm128-libgcc
-tgamma 1e3 xfail-rounding:ibm128-libgcc
+tgamma 0xa.b9fd72b0fb238p+4
+tgamma 0xa.b9fd72b0fb24p+4
+tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f4p+4
+tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f8p+4
+tgamma 0x6.db8c603359a97108p+8
+tgamma 0x6.db8c603359a9711p+8
+tgamma 0x6.db8c603359a971081bc4a2e9dfdp+8
+tgamma 0x6.db8c603359a971081bc4a2e9dfd4p+8
+tgamma 1e3
tgamma -100000.5
-tgamma max xfail-rounding:ibm128-libgcc
+tgamma max
tgamma -0x22.30p0
tgamma -0x22.31p0
@@ -4709,8 +4709,8 @@ y1 0x1p-100
y1 0x1p-110
y1 0x1p-600
y1 0x1p-10000
-y1 min xfail-rounding:ibm128-libgcc
-y1 min_subnorm xfail-rounding:ibm128-libgcc
+y1 min
+y1 min_subnorm
# yn (0, x) == y0 (x).
yn 0 0.125
@@ -4741,8 +4741,8 @@ yn 3 2.0
yn 3 10.0
yn 3 0x1p-10
yn 3 0x1p-100
-yn 3 0x1p-600 xfail-rounding:ibm128-libgcc
-yn 3 0x1p-10000 xfail-rounding:ibm128-libgcc
+yn 3 0x1p-600
+yn 3 0x1p-10000
# yn (10, x).
yn 10 0.125
@@ -4753,7 +4753,7 @@ yn 10 10.0
yn -10 1.0
-yn 10 min xfail-rounding:ibm128-libgcc
+yn 10 min
yn 2 0x1.ffff62p+99
yn 2 0x1p127
@@ -4761,24 +4761,24 @@ yn 2 0x1p1023
yn 2 0x1p16383
yn 2 0x1p-10
yn 2 0x1p-100
-yn 2 0x1p-600 xfail-rounding:ibm128-libgcc
-yn 2 0x1p-10000 xfail-rounding:ibm128-libgcc
+yn 2 0x1p-600
+yn 2 0x1p-10000
yn 0 min
yn 0 min_subnorm
-yn 1 min xfail-rounding:ibm128-libgcc
-yn 1 min_subnorm xfail-rounding:ibm128-libgcc
-yn -1 min xfail-rounding:ibm128-libgcc
-yn -1 min_subnorm xfail-rounding:ibm128-libgcc
-yn 2 min xfail-rounding:ibm128-libgcc
-yn 2 min_subnorm xfail-rounding:ibm128-libgcc
-yn -2 min xfail-rounding:ibm128-libgcc
-yn -2 min_subnorm xfail-rounding:ibm128-libgcc
-yn 17 min xfail-rounding:ibm128-libgcc
-yn 17 min_subnorm xfail-rounding:ibm128-libgcc
-yn -17 min xfail-rounding:ibm128-libgcc
-yn -17 min_subnorm xfail-rounding:ibm128-libgcc
-yn 42 min xfail-rounding:ibm128-libgcc
-yn 42 min_subnorm xfail-rounding:ibm128-libgcc
-yn -42 min xfail-rounding:ibm128-libgcc
-yn -42 min_subnorm xfail-rounding:ibm128-libgcc
+yn 1 min
+yn 1 min_subnorm
+yn -1 min
+yn -1 min_subnorm
+yn 2 min
+yn 2 min_subnorm
+yn -2 min
+yn -2 min_subnorm
+yn 17 min
+yn 17 min_subnorm
+yn -17 min
+yn -17 min_subnorm
+yn 42 min
+yn 42 min_subnorm
+yn -42 min
+yn -42 min_subnorm
diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c
index 22dd73f..9f497e0 100644
--- a/math/gen-auto-libm-tests.c
+++ b/math/gen-auto-libm-tests.c
@@ -1907,6 +1907,7 @@ output_for_one_input_case (FILE *fp, const char *filename, test_function *tf,
error (EXIT_FAILURE, errno, "write to '%s'", filename);
/* Print outputs. */
bool must_erange = false;
+ bool some_underflow_zero = false;
for (size_t i = 0; i < tf->num_ret; i++)
{
generic_value g;
@@ -1924,6 +1925,10 @@ output_for_one_input_case (FILE *fp, const char *filename, test_function *tf,
&& (all_exc_before[i][m]
& (1U << exc_underflow)) != 0)
must_erange = true;
+ if (mpfr_zero_p (all_res[i][rm_towardzero])
+ && (all_exc_before[i][m]
+ & (1U << exc_underflow)) != 0)
+ some_underflow_zero = true;
mpfr_init2 (g.value.f, fp_formats[f].mant_dig);
assert_exact (mpfr_set (g.value.f, all_res[i][m],
MPFR_RNDN));
@@ -1971,6 +1976,16 @@ output_for_one_input_case (FILE *fp, const char *filename, test_function *tf,
default:
break;
}
+ /* For the ibm128 format, expect incorrect overflowing
+ results in rounding modes other than to nearest;
+ likewise incorrect results where the result may
+ underflow to 0. */
+ if (f == fp_ldbl_128ibm
+ && m != rm_tonearest
+ && (some_underflow_zero
+ || (merged_exc_before[m] & (1U << exc_overflow)) != 0))
+ if (fputs (" xfail:ibm128-libgcc", fp) < 0)
+ error (EXIT_FAILURE, errno, "write to '%s'", filename);
/* Print exception flags and compute errno
expectations where not already computed. */
bool may_edom = false;
--
Joseph S. Myers
joseph@codesourcery.com