diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-01-04 23:29:42 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-01-04 23:29:42 +0000 |
commit | 179b86750caeb0a0a4798830d6d52a00dc70db2d (patch) | |
tree | feb71d3d4e52b57b8289b922ddcbee24b5e28f5e /math/libm-test.inc | |
parent | f67d78192c1be9d56d3a6f3fda4e0a70ae48c44d (diff) | |
download | glibc-179b86750caeb0a0a4798830d6d52a00dc70db2d.zip glibc-179b86750caeb0a0a4798830d6d52a00dc70db2d.tar.gz glibc-179b86750caeb0a0a4798830d6d52a00dc70db2d.tar.bz2 |
Update libm-test XFAILs for ibm128 format.
This patch cleans up and updates the libm-test XFAILs for the ibm128
format. More of them are changed to use a new ibm128-libgcc
conditional, to reflect that they are not in fact needed if you've
patched libgcc to fix the known issues (at substantial performance
cost). Many additional XFAILs are added for tests that fail with
unpatched libgcc (most but not all of them xfail-rounding).
Note that further such fixes will be needed for test-ldouble actually
to pass with default libgcc (in particular, XFAILs for pow tests and
for various affected tests directly embedded in libm-test.inc). With
patched libgcc, there may be a few XFAILs needed but the results are
already substantially clean apart from a few ulps differences.
Tested for powerpc.
* math/libm-test.inc (TEST_COND_ibm128_libgcc): New macro.
(init_max_error) [TEST_COND_ibm128]: Increase maximum error
allowed to 16 ulps.
* math/auto-libm-test-in: Change most XFAILs for ibm128 to use
ibm128-libgcc. XFAIL more tests for ibm128-libgcc.
* math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math/libm-test.inc')
-rw-r--r-- | math/libm-test.inc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/math/libm-test.inc b/math/libm-test.inc index 0032a83..c6ce578 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -231,6 +231,12 @@ && MIN_EXP == -16382 \ && MAX_EXP == 16384) +/* The condition ibm128-libgcc is used instead of ibm128 to mark tests + where in principle the glibc code is OK but the tests fail because + of limitations of the libgcc support for that format (e.g. GCC bug + 59666, in non-default rounding modes). */ +#define TEST_COND_ibm128_libgcc TEST_COND_ibm128 + /* Number of bits in NaN payload. */ #if TEST_COND_ibm128 # define PAYLOAD_DIG (DBL_MANT_DIG - 2) @@ -428,7 +434,7 @@ init_max_error (const char *name, int exact) libgcc/config/rs6000/ibm-ldouble-format), so do not require better accuracy for libm functions that are exactly defined for other formats. */ - max_valid_error = exact ? 3 : 14; + max_valid_error = exact ? 3 : 16; #else max_valid_error = exact ? 0 : 9; #endif |