This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Disable some fma tests for ldbl-128ibm
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Thu, 22 Nov 2012 17:50:31 +0000
- Subject: Disable some fma tests for ldbl-128ibm
This patch disables some directed-rounding fma tests for ldbl-128ibm,
with comments referring to the bug about fma implementations not
providing proper fused operations.
Tested that this removes those tests from the test-ldouble failures
reported on powerpc.
2012-11-22 Joseph Myers <joseph@codesourcery.com>
* math/libm-test.inc (fma_test_towardzero) [TEST_LDOUBLE &&
LDBL_MANT_DIG == 106]: Disable some tests.
(fma_test_downward) [TEST_LDOUBLE && LDBL_MANT_DIG == 106]:
Likewise.
(fma_test_upward) [TEST_LDOUBLE && LDBL_MANT_DIG == 106]:
Likewise.
diff --git a/math/libm-test.inc b/math/libm-test.inc
index b96f1bf..06c9e1f 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -4889,6 +4889,7 @@ fma_test_towardzero (void)
TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
+#if !(defined TEST_LDOUBLE && LDBL_MANT_DIG == 106) /* Bug 13304. */
TEST_fff_f (fma, max_value, max_value, min_value, max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, max_value, max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, max_value, -max_value, min_value, -max_value, OVERFLOW_EXCEPTION);
@@ -4897,6 +4898,7 @@ fma_test_towardzero (void)
TEST_fff_f (fma, -max_value, max_value, -min_value, -max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, -max_value, -max_value, min_value, max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, -max_value, -max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
+#endif
#if defined (TEST_FLOAT) && FLT_MANT_DIG == 24
TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION);
@@ -5107,6 +5109,7 @@ fma_test_downward (void)
TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
+#if !(defined TEST_LDOUBLE && LDBL_MANT_DIG == 106) /* Bug 13304. */
TEST_fff_f (fma, max_value, max_value, min_value, max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, max_value, max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, max_value, -max_value, min_value, minus_infty, OVERFLOW_EXCEPTION);
@@ -5115,6 +5118,7 @@ fma_test_downward (void)
TEST_fff_f (fma, -max_value, max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, -max_value, -max_value, min_value, max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, -max_value, -max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
+#endif
#if defined (TEST_FLOAT) && FLT_MANT_DIG == 24
TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION);
@@ -5325,6 +5329,7 @@ fma_test_upward (void)
TEST_fff_f (fma, -min_value, -min_value, plus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, -min_value, -min_value, minus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION);
+#if !(defined TEST_LDOUBLE && LDBL_MANT_DIG == 106) /* Bug 13304. */
TEST_fff_f (fma, max_value, max_value, min_value, plus_infty, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, max_value, max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, max_value, -max_value, min_value, -max_value, OVERFLOW_EXCEPTION);
@@ -5333,6 +5338,7 @@ fma_test_upward (void)
TEST_fff_f (fma, -max_value, max_value, -min_value, -max_value, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, -max_value, -max_value, min_value, plus_infty, OVERFLOW_EXCEPTION);
TEST_fff_f (fma, -max_value, -max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION);
+#endif
#if defined (TEST_FLOAT) && FLT_MANT_DIG == 24
TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00008p-127, UNDERFLOW_EXCEPTION);
--
Joseph S. Myers
joseph@codesourcery.com