[PATCH v2] powerpc: Update ULPs and output for j0 with ibm128

Matheus Castanho msc@linux.ibm.com
Wed Sep 9 16:58:30 GMT 2020


This is a follow up based on the discussion on [1]. This time I
regenerated the ULPs using the libgcc patch Tulio mentioned and added a
brief explanation of the problem in the commit message.

[1] https://sourceware.org/pipermail/libc-alpha/2020-August/117156.html

--- 8< ---

Before this patch, the following tests were failing:

ppc and ppc64:
    FAIL: math/test-ldouble-j0

ppc64le:
    FAIL: math/test-float128-j0
    FAIL: math/test-float64x-j0
    FAIL: math/test-ibm128-j0
    FAIL: math/test-ldouble-j0

Currently libgcc has an inherent loss of precision for some rounding
modes for ibm128, which leads to higher ULPs than the theoretical
minimum.  There is a patch to fix this issue [1], but is has not been
integrated into upstream GCC due to performance issues.

Instead of updating the ldouble ULPs for j0 with an upstream GCC,
constantly increasing their values, this patch regenerates them with a
GCC compiled with the patch mentioned above. This way we have the actual
precise ULPs listed in libm-test-ulps.  Of course, when compiling with
an upstream compiler some tests will fail as the calculated ULPs will be
higher than the expected ones.  For such tests, we mark the
corresponding entries in math/auto-libm-test-in with
xfail-rounding:ibm128-libgcc.

[1] https://github.com/tuliom/gcc/commit/ca42479cae3c2b56651c3e97bb5eeaf24ca4bb61
---
 math/auto-libm-test-in             |  20 +-
 math/auto-libm-test-out-j0         | 560 ++++++++++++++---------------
 sysdeps/powerpc/fpu/libm-test-ulps |   8 +-
 3 files changed, 294 insertions(+), 294 deletions(-)

diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 5d488a8711..4472d1229b 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -5737,19 +5737,19 @@ j0 0.75
 j0 1.0
 j0 1.5
 j0 2.0
-j0 8.0
-j0 10.0
-j0 4.0
-j0 -4.0
-j0 0x1.d7ce3ap+107
-j0 -0x1.001000001p+593
-j0 0x1p1023
-j0 0x1p16382
-j0 0x1p16383
+j0 8.0 xfail-rounding:ibm128-libgcc
+j0 10.0 xfail-rounding:ibm128-libgcc
+j0 4.0 xfail-rounding:ibm128-libgcc
+j0 -4.0 xfail-rounding:ibm128-libgcc
+j0 0x1.d7ce3ap+107 xfail-rounding:ibm128-libgcc
+j0 -0x1.001000001p+593 xfail-rounding:ibm128-libgcc
+j0 0x1p1023 xfail-rounding:ibm128-libgcc
+j0 0x1p16382 xfail-rounding:ibm128-libgcc
+j0 0x1p16383 xfail-rounding:ibm128-libgcc
 # the next value generates larger error bounds on x86_64 (binary32)
 j0 0x2.602774p+0 xfail-rounding:ibm128-libgcc
 # the next value exercises the flt-32 code path for x >= 2^127
-j0 0x8.2f4ecp+124
+j0 0x8.2f4ecp+124 xfail-rounding:ibm128-libgcc
 
 j1 -1.0
 j1 0.0
diff --git a/math/auto-libm-test-out-j0 b/math/auto-libm-test-out-j0
index cc1fea074e..43953d51e2 100644
--- a/math/auto-libm-test-out-j0
+++ b/math/auto-libm-test-out-j0
@@ -989,351 +989,351 @@ j0 2.0
 = j0 tonearest ibm128 0x2p+0 : 0x3.950e7f6499def91adac0afbc5ep-4 : inexact-ok
 = j0 towardzero ibm128 0x2p+0 : 0x3.950e7f6499def91adac0afbc5dp-4 : inexact-ok
 = j0 upward ibm128 0x2p+0 : 0x3.950e7f6499def91adac0afbc5ep-4 : inexact-ok
-j0 8.0
-= j0 downward binary32 0x8p+0 : 0x2.bf14e8p-4 : inexact-ok
+j0 8.0 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0x8p+0 : 0x2.bf14e8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0x8p+0 : 0x2.bf14ecp-4 : inexact-ok
-= j0 towardzero binary32 0x8p+0 : 0x2.bf14e8p-4 : inexact-ok
-= j0 upward binary32 0x8p+0 : 0x2.bf14ecp-4 : inexact-ok
-= j0 downward binary64 0x8p+0 : 0x2.bf14eaafce04ap-4 : inexact-ok
+= j0 towardzero binary32 0x8p+0 : 0x2.bf14e8p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0x8p+0 : 0x2.bf14ecp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0x8p+0 : 0x2.bf14eaafce04ap-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0x8p+0 : 0x2.bf14eaafce04ap-4 : inexact-ok
-= j0 towardzero binary64 0x8p+0 : 0x2.bf14eaafce04ap-4 : inexact-ok
-= j0 upward binary64 0x8p+0 : 0x2.bf14eaafce04cp-4 : inexact-ok
-= j0 downward intel96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : inexact-ok
+= j0 towardzero binary64 0x8p+0 : 0x2.bf14eaafce04ap-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0x8p+0 : 0x2.bf14eaafce04cp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0x8p+0 : 0x2.bf14eaafce04a588p-4 : inexact-ok
-= j0 towardzero intel96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : inexact-ok
-= j0 upward intel96 0x8p+0 : 0x2.bf14eaafce04a588p-4 : inexact-ok
-= j0 downward m68k96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : inexact-ok
+= j0 towardzero intel96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0x8p+0 : 0x2.bf14eaafce04a588p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0x8p+0 : 0x2.bf14eaafce04a588p-4 : inexact-ok
-= j0 towardzero m68k96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : inexact-ok
-= j0 upward m68k96 0x8p+0 : 0x2.bf14eaafce04a588p-4 : inexact-ok
-= j0 downward binary128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82082p-4 : inexact-ok
+= j0 towardzero m68k96 0x8p+0 : 0x2.bf14eaafce04a584p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0x8p+0 : 0x2.bf14eaafce04a588p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82082p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82084p-4 : inexact-ok
-= j0 towardzero binary128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82082p-4 : inexact-ok
-= j0 upward binary128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82084p-4 : inexact-ok
-= j0 downward ibm128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82p-4 : inexact-ok
+= j0 towardzero binary128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82082p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82084p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0x8p+0 : 0x2.bf14eaafce04a587ded211e821p-4 : inexact-ok
-= j0 towardzero ibm128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82p-4 : inexact-ok
-= j0 upward ibm128 0x8p+0 : 0x2.bf14eaafce04a587ded211e821p-4 : inexact-ok
-j0 10.0
-= j0 downward binary32 0xap+0 : -0x3.ef5a58p-4 : inexact-ok
+= j0 towardzero ibm128 0x8p+0 : 0x2.bf14eaafce04a587ded211e82p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0x8p+0 : 0x2.bf14eaafce04a587ded211e821p-4 : xfail:ibm128-libgcc inexact-ok
+j0 10.0 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0xap+0 : -0x3.ef5a58p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0xap+0 : -0x3.ef5a58p-4 : inexact-ok
-= j0 towardzero binary32 0xap+0 : -0x3.ef5a54p-4 : inexact-ok
-= j0 upward binary32 0xap+0 : -0x3.ef5a54p-4 : inexact-ok
-= j0 downward binary64 0xap+0 : -0x3.ef5a5713c3ca8p-4 : inexact-ok
+= j0 towardzero binary32 0xap+0 : -0x3.ef5a54p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0xap+0 : -0x3.ef5a54p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0xap+0 : -0x3.ef5a5713c3ca8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0xap+0 : -0x3.ef5a5713c3ca8p-4 : inexact-ok
-= j0 towardzero binary64 0xap+0 : -0x3.ef5a5713c3ca6p-4 : inexact-ok
-= j0 upward binary64 0xap+0 : -0x3.ef5a5713c3ca6p-4 : inexact-ok
-= j0 downward intel96 0xap+0 : -0x3.ef5a5713c3ca7068p-4 : inexact-ok
+= j0 towardzero binary64 0xap+0 : -0x3.ef5a5713c3ca6p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0xap+0 : -0x3.ef5a5713c3ca6p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0xap+0 : -0x3.ef5a5713c3ca7068p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : inexact-ok
-= j0 towardzero intel96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : inexact-ok
-= j0 upward intel96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : inexact-ok
-= j0 downward m68k96 0xap+0 : -0x3.ef5a5713c3ca7068p-4 : inexact-ok
+= j0 towardzero intel96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0xap+0 : -0x3.ef5a5713c3ca7068p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : inexact-ok
-= j0 towardzero m68k96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : inexact-ok
-= j0 upward m68k96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : inexact-ok
-= j0 downward binary128 0xap+0 : -0x3.ef5a5713c3ca70644304d7022888p-4 : inexact-ok
+= j0 towardzero m68k96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0xap+0 : -0x3.ef5a5713c3ca7064p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xap+0 : -0x3.ef5a5713c3ca70644304d7022888p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xap+0 : -0x3.ef5a5713c3ca70644304d7022886p-4 : inexact-ok
-= j0 towardzero binary128 0xap+0 : -0x3.ef5a5713c3ca70644304d7022886p-4 : inexact-ok
-= j0 upward binary128 0xap+0 : -0x3.ef5a5713c3ca70644304d7022886p-4 : inexact-ok
-= j0 downward ibm128 0xap+0 : -0x3.ef5a5713c3ca70644304d70229p-4 : inexact-ok
+= j0 towardzero binary128 0xap+0 : -0x3.ef5a5713c3ca70644304d7022886p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xap+0 : -0x3.ef5a5713c3ca70644304d7022886p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xap+0 : -0x3.ef5a5713c3ca70644304d70229p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xap+0 : -0x3.ef5a5713c3ca70644304d70229p-4 : inexact-ok
-= j0 towardzero ibm128 0xap+0 : -0x3.ef5a5713c3ca70644304d70228p-4 : inexact-ok
-= j0 upward ibm128 0xap+0 : -0x3.ef5a5713c3ca70644304d70228p-4 : inexact-ok
-j0 4.0
-= j0 downward binary32 0x4p+0 : -0x6.5ab9c8p-4 : inexact-ok
+= j0 towardzero ibm128 0xap+0 : -0x3.ef5a5713c3ca70644304d70228p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xap+0 : -0x3.ef5a5713c3ca70644304d70228p-4 : xfail:ibm128-libgcc inexact-ok
+j0 4.0 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0x4p+0 : -0x6.5ab9c8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0x4p+0 : -0x6.5ab9cp-4 : inexact-ok
-= j0 towardzero binary32 0x4p+0 : -0x6.5ab9cp-4 : inexact-ok
-= j0 upward binary32 0x4p+0 : -0x6.5ab9cp-4 : inexact-ok
-= j0 downward binary64 0x4p+0 : -0x6.5ab9c24fa53e8p-4 : inexact-ok
+= j0 towardzero binary32 0x4p+0 : -0x6.5ab9cp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0x4p+0 : -0x6.5ab9cp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0x4p+0 : -0x6.5ab9c24fa53e8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0x4p+0 : -0x6.5ab9c24fa53e4p-4 : inexact-ok
-= j0 towardzero binary64 0x4p+0 : -0x6.5ab9c24fa53e4p-4 : inexact-ok
-= j0 upward binary64 0x4p+0 : -0x6.5ab9c24fa53e4p-4 : inexact-ok
-= j0 downward intel96 0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : inexact-ok
+= j0 towardzero binary64 0x4p+0 : -0x6.5ab9c24fa53e4p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0x4p+0 : -0x6.5ab9c24fa53e4p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 towardzero intel96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 upward intel96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 downward m68k96 0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : inexact-ok
+= j0 towardzero intel96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 towardzero m68k96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 upward m68k96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 downward binary128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d9cp-4 : inexact-ok
+= j0 towardzero m68k96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d9cp-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d9cp-4 : inexact-ok
-= j0 towardzero binary128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : inexact-ok
-= j0 upward binary128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : inexact-ok
-= j0 downward ibm128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87ep-4 : inexact-ok
+= j0 towardzero binary128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87ep-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87ep-4 : inexact-ok
-= j0 towardzero ibm128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : inexact-ok
-= j0 upward ibm128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : inexact-ok
-j0 -4.0
-= j0 downward binary32 -0x4p+0 : -0x6.5ab9c8p-4 : inexact-ok
+= j0 towardzero ibm128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : xfail:ibm128-libgcc inexact-ok
+j0 -4.0 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 -0x4p+0 : -0x6.5ab9c8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 -0x4p+0 : -0x6.5ab9cp-4 : inexact-ok
-= j0 towardzero binary32 -0x4p+0 : -0x6.5ab9cp-4 : inexact-ok
-= j0 upward binary32 -0x4p+0 : -0x6.5ab9cp-4 : inexact-ok
-= j0 downward binary64 -0x4p+0 : -0x6.5ab9c24fa53e8p-4 : inexact-ok
+= j0 towardzero binary32 -0x4p+0 : -0x6.5ab9cp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 -0x4p+0 : -0x6.5ab9cp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 -0x4p+0 : -0x6.5ab9c24fa53e8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 -0x4p+0 : -0x6.5ab9c24fa53e4p-4 : inexact-ok
-= j0 towardzero binary64 -0x4p+0 : -0x6.5ab9c24fa53e4p-4 : inexact-ok
-= j0 upward binary64 -0x4p+0 : -0x6.5ab9c24fa53e4p-4 : inexact-ok
-= j0 downward intel96 -0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : inexact-ok
+= j0 towardzero binary64 -0x4p+0 : -0x6.5ab9c24fa53e4p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 -0x4p+0 : -0x6.5ab9c24fa53e4p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 -0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 towardzero intel96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 upward intel96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 downward m68k96 -0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : inexact-ok
+= j0 towardzero intel96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 -0x4p+0 : -0x6.5ab9c24fa53e5cd8p-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 towardzero m68k96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 upward m68k96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : inexact-ok
-= j0 downward binary128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d9cp-4 : inexact-ok
+= j0 towardzero m68k96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 -0x4p+0 : -0x6.5ab9c24fa53e5cdp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d9cp-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d9cp-4 : inexact-ok
-= j0 towardzero binary128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : inexact-ok
-= j0 upward binary128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : inexact-ok
-= j0 downward ibm128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87ep-4 : inexact-ok
+= j0 towardzero binary128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87d98p-4 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87ep-4 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87ep-4 : inexact-ok
-= j0 towardzero ibm128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : inexact-ok
-= j0 upward ibm128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : inexact-ok
-j0 0x1.d7ce3ap+107
-= j0 downward binary32 0xe.be71dp+104 : 0x1.fffe66p-56 : inexact-ok
+= j0 towardzero ibm128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 -0x4p+0 : -0x6.5ab9c24fa53e5cd1657dfde87cp-4 : xfail:ibm128-libgcc inexact-ok
+j0 0x1.d7ce3ap+107 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0xe.be71dp+104 : 0x1.fffe66p-56 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0xe.be71dp+104 : 0x1.fffe66p-56 : inexact-ok
-= j0 towardzero binary32 0xe.be71dp+104 : 0x1.fffe66p-56 : inexact-ok
-= j0 upward binary32 0xe.be71dp+104 : 0x1.fffe68p-56 : inexact-ok
-= j0 downward binary64 0xe.be71dp+104 : 0x1.fffe660069bbbp-56 : inexact-ok
+= j0 towardzero binary32 0xe.be71dp+104 : 0x1.fffe66p-56 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0xe.be71dp+104 : 0x1.fffe68p-56 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0xe.be71dp+104 : 0x1.fffe660069bbbp-56 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0xe.be71dp+104 : 0x1.fffe660069bbbp-56 : inexact-ok
-= j0 towardzero binary64 0xe.be71dp+104 : 0x1.fffe660069bbbp-56 : inexact-ok
-= j0 upward binary64 0xe.be71dp+104 : 0x1.fffe660069bbcp-56 : inexact-ok
-= j0 downward intel96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : inexact-ok
+= j0 towardzero binary64 0xe.be71dp+104 : 0x1.fffe660069bbbp-56 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0xe.be71dp+104 : 0x1.fffe660069bbcp-56 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : inexact-ok
-= j0 towardzero intel96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : inexact-ok
-= j0 upward intel96 0xe.be71dp+104 : 0x1.fffe660069bbb662p-56 : inexact-ok
-= j0 downward m68k96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : inexact-ok
+= j0 towardzero intel96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0xe.be71dp+104 : 0x1.fffe660069bbb662p-56 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : inexact-ok
-= j0 towardzero m68k96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : inexact-ok
-= j0 upward m68k96 0xe.be71dp+104 : 0x1.fffe660069bbb662p-56 : inexact-ok
-= j0 downward binary128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b59p-56 : inexact-ok
+= j0 towardzero m68k96 0xe.be71dp+104 : 0x1.fffe660069bbb66p-56 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0xe.be71dp+104 : 0x1.fffe660069bbb662p-56 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b59p-56 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b59p-56 : inexact-ok
-= j0 towardzero binary128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b59p-56 : inexact-ok
-= j0 upward binary128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b5ap-56 : inexact-ok
-= j0 downward ibm128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510bp-56 : inexact-ok
+= j0 towardzero binary128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b59p-56 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b5ap-56 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510bp-56 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b8p-56 : inexact-ok
-= j0 towardzero ibm128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510bp-56 : inexact-ok
-= j0 upward ibm128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b8p-56 : inexact-ok
-j0 -0x1.001000001p+593
-= j0 downward binary32 -0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
+= j0 towardzero ibm128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510bp-56 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xe.be71dp+104 : 0x1.fffe660069bbb660b03a17510b8p-56 : xfail:ibm128-libgcc inexact-ok
+j0 -0x1.001000001p+593 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 -0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 -0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 towardzero binary32 -0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 upward binary32 -0xf.fffffp+124 : 0x2.fd3facp-68 : inexact-ok
-= j0 downward binary64 -0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
+= j0 towardzero binary32 -0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 -0xf.fffffp+124 : 0x2.fd3facp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 -0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 -0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 towardzero binary64 -0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
-= j0 upward binary64 -0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 downward intel96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero binary64 -0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 -0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero intel96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward intel96 -0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward m68k96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero intel96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 -0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero m68k96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward m68k96 -0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward binary128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
+= j0 towardzero m68k96 -0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 -0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 towardzero binary128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 upward binary128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : inexact-ok
-= j0 downward ibm128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
+= j0 towardzero binary128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 towardzero ibm128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 upward ibm128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : inexact-ok
-= j0 downward binary64 -0x2.002000002p+592 : -0x7.ffff5bc14ea2cp-300 : inexact-ok
+= j0 towardzero ibm128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 -0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 -0x2.002000002p+592 : -0x7.ffff5bc14ea2cp-300 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 -0x2.002000002p+592 : -0x7.ffff5bc14ea2cp-300 : inexact-ok
-= j0 towardzero binary64 -0x2.002000002p+592 : -0x7.ffff5bc14ea28p-300 : inexact-ok
-= j0 upward binary64 -0x2.002000002p+592 : -0x7.ffff5bc14ea28p-300 : inexact-ok
-= j0 downward intel96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a99p-300 : inexact-ok
+= j0 towardzero binary64 -0x2.002000002p+592 : -0x7.ffff5bc14ea28p-300 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 -0x2.002000002p+592 : -0x7.ffff5bc14ea28p-300 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a99p-300 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a99p-300 : inexact-ok
-= j0 towardzero intel96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : inexact-ok
-= j0 upward intel96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : inexact-ok
-= j0 downward m68k96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a99p-300 : inexact-ok
+= j0 towardzero intel96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a99p-300 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a99p-300 : inexact-ok
-= j0 towardzero m68k96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : inexact-ok
-= j0 upward m68k96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : inexact-ok
-= j0 downward binary128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8cp-300 : inexact-ok
+= j0 towardzero m68k96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a988p-300 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8cp-300 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8cp-300 : inexact-ok
-= j0 towardzero binary128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8bcp-300 : inexact-ok
-= j0 upward binary128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8bcp-300 : inexact-ok
-= j0 downward ibm128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03eap-300 : inexact-ok
+= j0 towardzero binary128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8bcp-300 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8bcp-300 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03eap-300 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8p-300 : inexact-ok
-= j0 towardzero ibm128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8p-300 : inexact-ok
-= j0 upward ibm128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8p-300 : inexact-ok
-j0 0x1p1023
-= j0 downward binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
+= j0 towardzero ibm128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8p-300 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 -0x2.002000002p+592 : -0x7.ffff5bc14ea2a98c2c8b9c03e8p-300 : xfail:ibm128-libgcc inexact-ok
+j0 0x1p1023 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 towardzero binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 upward binary32 0xf.fffffp+124 : 0x2.fd3facp-68 : inexact-ok
-= j0 downward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
+= j0 towardzero binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0xf.fffffp+124 : 0x2.fd3facp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 towardzero binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
-= j0 upward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 downward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
+= j0 towardzero m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 towardzero binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 upward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : inexact-ok
-= j0 downward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
+= j0 towardzero binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 towardzero ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 upward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : inexact-ok
-= j0 downward binary64 0x8p+1020 : -0x3.5c4f847797f3p-516 : inexact-ok
+= j0 towardzero ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0x8p+1020 : -0x3.5c4f847797f3p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0x8p+1020 : -0x3.5c4f847797f3p-516 : inexact-ok
-= j0 towardzero binary64 0x8p+1020 : -0x3.5c4f847797f2ep-516 : inexact-ok
-= j0 upward binary64 0x8p+1020 : -0x3.5c4f847797f2ep-516 : inexact-ok
-= j0 downward intel96 0x8p+1020 : -0x3.5c4f847797f2fb08p-516 : inexact-ok
+= j0 towardzero binary64 0x8p+1020 : -0x3.5c4f847797f2ep-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0x8p+1020 : -0x3.5c4f847797f2ep-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0x8p+1020 : -0x3.5c4f847797f2fb08p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : inexact-ok
-= j0 towardzero intel96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : inexact-ok
-= j0 upward intel96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : inexact-ok
-= j0 downward m68k96 0x8p+1020 : -0x3.5c4f847797f2fb08p-516 : inexact-ok
+= j0 towardzero intel96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0x8p+1020 : -0x3.5c4f847797f2fb08p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : inexact-ok
-= j0 towardzero m68k96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : inexact-ok
-= j0 upward m68k96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : inexact-ok
-= j0 downward binary128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca02ap-516 : inexact-ok
+= j0 towardzero m68k96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0x8p+1020 : -0x3.5c4f847797f2fb04p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca02ap-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca028p-516 : inexact-ok
-= j0 towardzero binary128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca028p-516 : inexact-ok
-= j0 upward binary128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca028p-516 : inexact-ok
-= j0 downward ibm128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca1p-516 : inexact-ok
+= j0 towardzero binary128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca028p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca028p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82ca1p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82cap-516 : inexact-ok
-= j0 towardzero ibm128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82cap-516 : inexact-ok
-= j0 upward ibm128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82cap-516 : inexact-ok
-j0 0x1p16382
-= j0 downward binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
+= j0 towardzero ibm128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82cap-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0x8p+1020 : -0x3.5c4f847797f2fb0411a8a82cap-516 : xfail:ibm128-libgcc inexact-ok
+j0 0x1p16382 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 towardzero binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 upward binary32 0xf.fffffp+124 : 0x2.fd3facp-68 : inexact-ok
-= j0 downward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
+= j0 towardzero binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0xf.fffffp+124 : 0x2.fd3facp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 towardzero binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
-= j0 upward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 downward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
+= j0 towardzero m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 towardzero binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 upward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : inexact-ok
-= j0 downward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
+= j0 towardzero binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 towardzero ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 upward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : inexact-ok
-= j0 downward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f338p-516 : inexact-ok
+= j0 towardzero ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f338p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f338p-516 : inexact-ok
-= j0 towardzero binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : inexact-ok
-= j0 upward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : inexact-ok
-= j0 downward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
+= j0 towardzero binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
-= j0 towardzero intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 upward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 downward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
+= j0 towardzero intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
-= j0 towardzero m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 upward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 downward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe2708p-516 : inexact-ok
+= j0 towardzero m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe2708p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : inexact-ok
-= j0 towardzero binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : inexact-ok
-= j0 upward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : inexact-ok
-= j0 downward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe28p-516 : inexact-ok
+= j0 towardzero binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe28p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe28p-516 : inexact-ok
-= j0 towardzero ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : inexact-ok
-= j0 upward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : inexact-ok
-= j0 downward intel96 0x4p+16380 : -0x1.547d24fb1319013p-8192 : inexact-ok
+= j0 towardzero ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0x4p+16380 : -0x1.547d24fb1319013p-8192 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0x4p+16380 : -0x1.547d24fb1319013p-8192 : inexact-ok
-= j0 towardzero intel96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : inexact-ok
-= j0 upward intel96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : inexact-ok
-= j0 downward m68k96 0x4p+16380 : -0x1.547d24fb1319013p-8192 : inexact-ok
+= j0 towardzero intel96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0x4p+16380 : -0x1.547d24fb1319013p-8192 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0x4p+16380 : -0x1.547d24fb1319013p-8192 : inexact-ok
-= j0 towardzero m68k96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : inexact-ok
-= j0 upward m68k96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : inexact-ok
-= j0 downward binary128 0x4p+16380 : -0x1.547d24fb1319012fae0dc6c96322p-8192 : inexact-ok
+= j0 towardzero m68k96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0x4p+16380 : -0x1.547d24fb1319012ep-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0x4p+16380 : -0x1.547d24fb1319012fae0dc6c96322p-8192 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0x4p+16380 : -0x1.547d24fb1319012fae0dc6c96322p-8192 : inexact-ok
-= j0 towardzero binary128 0x4p+16380 : -0x1.547d24fb1319012fae0dc6c96321p-8192 : inexact-ok
-= j0 upward binary128 0x4p+16380 : -0x1.547d24fb1319012fae0dc6c96321p-8192 : inexact-ok
-= j0 downward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019024p-516 : inexact-ok
+= j0 towardzero binary128 0x4p+16380 : -0x1.547d24fb1319012fae0dc6c96321p-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0x4p+16380 : -0x1.547d24fb1319012fae0dc6c96321p-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019024p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : inexact-ok
-= j0 towardzero binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : inexact-ok
-= j0 upward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : inexact-ok
-= j0 downward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f01904p-516 : inexact-ok
+= j0 towardzero binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f01904p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f01904p-516 : inexact-ok
-= j0 towardzero ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : inexact-ok
-= j0 upward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : inexact-ok
-j0 0x1p16383
-= j0 downward binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
+= j0 towardzero ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : xfail:ibm128-libgcc inexact-ok
+j0 0x1p16383 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 towardzero binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : inexact-ok
-= j0 upward binary32 0xf.fffffp+124 : 0x2.fd3facp-68 : inexact-ok
-= j0 downward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
+= j0 towardzero binary32 0xf.fffffp+124 : 0x2.fd3fa8p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0xf.fffffp+124 : 0x2.fd3facp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 towardzero binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : inexact-ok
-= j0 upward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : inexact-ok
-= j0 downward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero binary64 0xf.fffffp+124 : 0x2.fd3fa9dee0898p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0xf.fffffp+124 : 0x2.fd3fa9dee089ap-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
+= j0 towardzero intel96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 towardzero m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : inexact-ok
-= j0 upward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : inexact-ok
-= j0 downward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
+= j0 towardzero m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee089929p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0xf.fffffp+124 : 0x2.fd3fa9dee0899294p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 towardzero binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : inexact-ok
-= j0 upward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : inexact-ok
-= j0 downward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
+= j0 towardzero binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5614p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc5616p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 towardzero ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : inexact-ok
-= j0 upward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : inexact-ok
-= j0 downward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f338p-516 : inexact-ok
+= j0 towardzero ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc56p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xf.fffffp+124 : 0x2.fd3fa9dee0899291bc853ffc57p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f338p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f338p-516 : inexact-ok
-= j0 towardzero binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : inexact-ok
-= j0 upward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : inexact-ok
-= j0 downward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
+= j0 towardzero binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
-= j0 towardzero intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 upward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 downward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
+= j0 towardzero intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33634p-516 : inexact-ok
-= j0 towardzero m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 upward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : inexact-ok
-= j0 downward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe2708p-516 : inexact-ok
+= j0 towardzero m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe2708p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : inexact-ok
-= j0 towardzero binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : inexact-ok
-= j0 upward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : inexact-ok
-= j0 downward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe28p-516 : inexact-ok
+= j0 towardzero binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe27p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe28p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe28p-516 : inexact-ok
-= j0 towardzero ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : inexact-ok
-= j0 upward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : inexact-ok
-= j0 downward intel96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : inexact-ok
+= j0 towardzero ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xf.ffffffffffff8p+1020 : -0x8.fb6ce7294f33633a6933acbe24p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0x8p+16380 : 0x1.0bab81cdff920822p-8192 : inexact-ok
-= j0 towardzero intel96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : inexact-ok
-= j0 upward intel96 0x8p+16380 : 0x1.0bab81cdff920822p-8192 : inexact-ok
-= j0 downward m68k96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : inexact-ok
+= j0 towardzero intel96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0x8p+16380 : 0x1.0bab81cdff920822p-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0x8p+16380 : 0x1.0bab81cdff920822p-8192 : inexact-ok
-= j0 towardzero m68k96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : inexact-ok
-= j0 upward m68k96 0x8p+16380 : 0x1.0bab81cdff920822p-8192 : inexact-ok
-= j0 downward binary128 0x8p+16380 : 0x1.0bab81cdff9208215a7577214c49p-8192 : inexact-ok
+= j0 towardzero m68k96 0x8p+16380 : 0x1.0bab81cdff92082p-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0x8p+16380 : 0x1.0bab81cdff920822p-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0x8p+16380 : 0x1.0bab81cdff9208215a7577214c49p-8192 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0x8p+16380 : 0x1.0bab81cdff9208215a7577214c49p-8192 : inexact-ok
-= j0 towardzero binary128 0x8p+16380 : 0x1.0bab81cdff9208215a7577214c49p-8192 : inexact-ok
-= j0 upward binary128 0x8p+16380 : 0x1.0bab81cdff9208215a7577214c4ap-8192 : inexact-ok
-= j0 downward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019024p-516 : inexact-ok
+= j0 towardzero binary128 0x8p+16380 : 0x1.0bab81cdff9208215a7577214c49p-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0x8p+16380 : 0x1.0bab81cdff9208215a7577214c4ap-8192 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019024p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : inexact-ok
-= j0 towardzero binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : inexact-ok
-= j0 upward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : inexact-ok
-= j0 downward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f01904p-516 : inexact-ok
+= j0 towardzero binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f0190238p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f01904p-516 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f01904p-516 : inexact-ok
-= j0 towardzero ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : inexact-ok
-= j0 upward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : inexact-ok
+= j0 towardzero ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : -0xb.a80d0ee91ce259a722e1f019p-516 : xfail:ibm128-libgcc inexact-ok
 j0 0x2.602774p+0 xfail-rounding:ibm128-libgcc
 = j0 downward binary32 0x2.602774p+0 : 0x3.e83778p-8 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0x2.602774p+0 : 0x3.e83778p-8 : inexact-ok
@@ -1359,28 +1359,28 @@ j0 0x2.602774p+0 xfail-rounding:ibm128-libgcc
 = j0 tonearest ibm128 0x2.602774p+0 : 0x3.e83779fe19911fa806cee83ab7p-8 : inexact-ok
 = j0 towardzero ibm128 0x2.602774p+0 : 0x3.e83779fe19911fa806cee83ab7p-8 : xfail:ibm128-libgcc inexact-ok
 = j0 upward ibm128 0x2.602774p+0 : 0x3.e83779fe19911fa806cee83ab8p-8 : xfail:ibm128-libgcc inexact-ok
-j0 0x8.2f4ecp+124
-= j0 downward binary32 0x8.2f4ecp+124 : 0xd.331efp-68 : inexact-ok
+j0 0x8.2f4ecp+124 xfail-rounding:ibm128-libgcc
+= j0 downward binary32 0x8.2f4ecp+124 : 0xd.331efp-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary32 0x8.2f4ecp+124 : 0xd.331efp-68 : inexact-ok
-= j0 towardzero binary32 0x8.2f4ecp+124 : 0xd.331efp-68 : inexact-ok
-= j0 upward binary32 0x8.2f4ecp+124 : 0xd.331fp-68 : inexact-ok
-= j0 downward binary64 0x8.2f4ecp+124 : 0xd.331ef7d26f46p-68 : inexact-ok
+= j0 towardzero binary32 0x8.2f4ecp+124 : 0xd.331efp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary32 0x8.2f4ecp+124 : 0xd.331fp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary64 0x8.2f4ecp+124 : 0xd.331ef7d26f46p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary64 0x8.2f4ecp+124 : 0xd.331ef7d26f468p-68 : inexact-ok
-= j0 towardzero binary64 0x8.2f4ecp+124 : 0xd.331ef7d26f46p-68 : inexact-ok
-= j0 upward binary64 0x8.2f4ecp+124 : 0xd.331ef7d26f468p-68 : inexact-ok
-= j0 downward intel96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : inexact-ok
+= j0 towardzero binary64 0x8.2f4ecp+124 : 0xd.331ef7d26f46p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary64 0x8.2f4ecp+124 : 0xd.331ef7d26f468p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward intel96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest intel96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cbp-68 : inexact-ok
-= j0 towardzero intel96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : inexact-ok
-= j0 upward intel96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cbp-68 : inexact-ok
-= j0 downward m68k96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : inexact-ok
+= j0 towardzero intel96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward intel96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cbp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward m68k96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest m68k96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cbp-68 : inexact-ok
-= j0 towardzero m68k96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : inexact-ok
-= j0 upward m68k96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cbp-68 : inexact-ok
-= j0 downward binary128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73402f8p-68 : inexact-ok
+= j0 towardzero m68k96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cap-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward m68k96 0x8.2f4ecp+124 : 0xd.331ef7d26f466cbp-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward binary128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73402f8p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest binary128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73403p-68 : inexact-ok
-= j0 towardzero binary128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73402f8p-68 : inexact-ok
-= j0 upward binary128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73403p-68 : inexact-ok
-= j0 downward ibm128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c734p-68 : inexact-ok
+= j0 towardzero binary128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73402f8p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward binary128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73403p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 downward ibm128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c734p-68 : xfail:ibm128-libgcc inexact-ok
 = j0 tonearest ibm128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73404p-68 : inexact-ok
-= j0 towardzero ibm128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c734p-68 : inexact-ok
-= j0 upward ibm128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73404p-68 : inexact-ok
+= j0 towardzero ibm128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c734p-68 : xfail:ibm128-libgcc inexact-ok
+= j0 upward ibm128 0x8.2f4ecp+124 : 0xd.331ef7d26f466caca081c73404p-68 : xfail:ibm128-libgcc inexact-ok
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
index cd2a5fed45..43db384407 100644
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/sysdeps/powerpc/fpu/libm-test-ulps
@@ -1317,19 +1317,19 @@ Function: "j0_downward":
 double: 2
 float: 4
 float128: 4
-ldouble: 11
+ldouble: 1
 
 Function: "j0_towardzero":
 double: 5
 float: 6
-float128: 2
-ldouble: 8
+float128: 4
+ldouble: 2
 
 Function: "j0_upward":
 double: 4
 float: 5
 float128: 5
-ldouble: 6
+ldouble: 2
 
 Function: "j1":
 double: 2
-- 
2.26.2



More information about the Libc-alpha mailing list