This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Improve libm-test XFAILing for ibm128-libgcc [committed]


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]