public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/2] unnormal test case fixes
@ 2021-01-04 14:24 Siddhesh Poyarekar
  2021-01-04 14:24 ` [PATCH 1/2] Drop nan-pseudo-number.h usage from tests Siddhesh Poyarekar
  2021-01-04 14:24 ` [PATCH 2/2] Limit unnormal tests to supported long double formats Siddhesh Poyarekar
  0 siblings, 2 replies; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-04 14:24 UTC (permalink / raw)
  To: libc-alpha; +Cc: fweimer, joseph

The following two patches fix issues that Joseph pointed out in the
unnormal tests.

The first patch fixes the breakage caused by moving nan-pseudo-number.h
and in the process also fixes the macro condition used to limit
conditions under which the test is built.

The second patch limits the macro condition further so that the unnormal
tests build only for long double and Float64x on intel96.  Further, it
cleans up the test macro names and casts test arguments to the type
being tested.

Verified with build-many-glibcs.py for ia64, m68k, i686 and aarch64 and
with a native build and test for x86_64.  Florian is helping me with a
full build-many-glibcs.py run since I don't have compilers for all
architectures yet.

Siddhesh Poyarekar (2):
  Drop nan-pseudo-number.h usage from tests
  Limit unnormal tests to supported long double formats

 math/libm-test-driver.c                     | 17 +++++++++--------
 math/libm-test-fpclassify.inc               | 18 +++++++++---------
 math/libm-test-isinf.inc                    | 18 +++++++++---------
 math/libm-test-isnan.inc                    | 18 +++++++++---------
 math/libm-test-issignaling.inc              | 18 +++++++++---------
 math/libm-test-support.h                    |  2 ++
 math/test-float64x.h                        |  1 +
 math/test-ldouble.h                         |  1 +
 sysdeps/ieee754/ldbl-96/nan-pseudo-number.h |  4 +---
 sysdeps/x86/fpu/nan-pseudo-number.h         |  1 -
 10 files changed, 50 insertions(+), 48 deletions(-)

-- 
2.29.2


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/2] Drop nan-pseudo-number.h usage from tests
  2021-01-04 14:24 [PATCH 0/2] unnormal test case fixes Siddhesh Poyarekar
@ 2021-01-04 14:24 ` Siddhesh Poyarekar
  2021-01-04 14:29   ` Florian Weimer
  2021-01-04 14:24 ` [PATCH 2/2] Limit unnormal tests to supported long double formats Siddhesh Poyarekar
  1 sibling, 1 reply; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-04 14:24 UTC (permalink / raw)
  To: libc-alpha; +Cc: fweimer, joseph

Make the tests use TEST_COND_intel96 to decide on whether to build the
unnormal tests instead of the macro in nan-pseudo-number.h and then
drop the header inclusion.  This unbreaks test runs on all
architectures that do not have ldbl-96.

Also drop the HANDLE_PSEUDO_NUMBERS macro since it is not used
anywhere.
---
 math/libm-test-driver.c                     | 5 ++---
 math/libm-test-fpclassify.inc               | 4 ++--
 math/libm-test-isinf.inc                    | 4 ++--
 math/libm-test-isnan.inc                    | 4 ++--
 math/libm-test-issignaling.inc              | 4 ++--
 sysdeps/ieee754/ldbl-96/nan-pseudo-number.h | 4 +---
 sysdeps/x86/fpu/nan-pseudo-number.h         | 1 -
 7 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c
index 87f2793061..f7c0861c39 100644
--- a/math/libm-test-driver.c
+++ b/math/libm-test-driver.c
@@ -19,7 +19,6 @@
 #include "libm-test-support.h"
 
 #include <math-tests-arch.h>
-#include <nan-pseudo-number.h>
 
 /* Flags set by the including file.  */
 const int flag_test_errno = TEST_ERRNO;
@@ -124,7 +123,7 @@ const char qtype_str[] = TYPE_STR;
 #define snan_value_ld	__builtin_nansl ("")
 
 /* For pseudo-normal number tests.  */
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
 # include <math_ldbl.h>
 #define pseudo_inf { .parts = { 0x00000000, 0x00000000, 0x7fff }}
 #define pseudo_zero { .parts = { 0x00000000, 0x00000000, 0x0100 }}
@@ -328,7 +327,7 @@ struct test_f_i_data
   } rd, rn, rz, ru;
 };
 /* Used for RUN_TEST_LOOP_f_i_tg_u and RUN_TEST_LOOP_f_b_tg_u.  */
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
 struct test_f_i_data_u
 {
   const char *arg_str;
diff --git a/math/libm-test-fpclassify.inc b/math/libm-test-fpclassify.inc
index 39728d0771..c1c7e1ead1 100644
--- a/math/libm-test-fpclassify.inc
+++ b/math/libm-test-fpclassify.inc
@@ -37,7 +37,7 @@ static const struct test_f_i_data fpclassify_test_data[] =
     TEST_f_i (fpclassify, -min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
 static const struct test_f_i_data_u fpclassify_test_data_u[] =
   {
     TEST_f_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
@@ -52,7 +52,7 @@ static void
 fpclassify_test (void)
 {
   ALL_RM_TEST (fpclassify, 1, fpclassify_test_data, RUN_TEST_LOOP_f_i_tg, END);
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
   ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_f_i_tg_u, END);
 #endif
 }
diff --git a/math/libm-test-isinf.inc b/math/libm-test-isinf.inc
index 38f973ba38..7d4b27a45c 100644
--- a/math/libm-test-isinf.inc
+++ b/math/libm-test-isinf.inc
@@ -37,7 +37,7 @@ static const struct test_f_i_data isinf_test_data[] =
     TEST_f_b (isinf, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
 static const struct test_f_i_data_u isinf_test_data_u[] =
   {
     TEST_f_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
@@ -52,7 +52,7 @@ static void
 isinf_test (void)
 {
   ALL_RM_TEST (isinf, 1, isinf_test_data, RUN_TEST_LOOP_f_b_tg, END);
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
   ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
 #endif
 }
diff --git a/math/libm-test-isnan.inc b/math/libm-test-isnan.inc
index 948a3afdec..501bb1856f 100644
--- a/math/libm-test-isnan.inc
+++ b/math/libm-test-isnan.inc
@@ -37,7 +37,7 @@ static const struct test_f_i_data isnan_test_data[] =
     TEST_f_b (isnan, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
 static const struct test_f_i_data_u isnan_test_data_u[] =
   {
     TEST_f_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
@@ -52,7 +52,7 @@ static void
 isnan_test (void)
 {
   ALL_RM_TEST (isnan, 1, isnan_test_data, RUN_TEST_LOOP_f_b_tg, END);
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
   ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
 #endif
 }
diff --git a/math/libm-test-issignaling.inc b/math/libm-test-issignaling.inc
index cc7c801e29..bea61a3664 100644
--- a/math/libm-test-issignaling.inc
+++ b/math/libm-test-issignaling.inc
@@ -39,7 +39,7 @@ static const struct test_f_i_data issignaling_test_data[] =
     TEST_f_b (issignaling, -snan_value_MACRO, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
 static const struct test_f_i_data_u issignaling_test_data_u[] =
   {
     TEST_f_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
@@ -54,7 +54,7 @@ static void
 issignaling_test (void)
 {
   ALL_RM_TEST (issignaling, 1, issignaling_test_data, RUN_TEST_LOOP_f_b_tg, END);
-#if HANDLE_PSEUDO_NUMBERS
+#if TEST_COND_intel96
   ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
 #endif
 }
diff --git a/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h b/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h
index 771515a546..4df3b2e4de 100644
--- a/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h
+++ b/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h
@@ -19,9 +19,7 @@
 #ifndef NAN_PSEUDO_NUMBER_H
 #define NAN_PSEUDO_NUMBER_H	1
 
-/* Set this macro and override the definition of IS_PSEUDO_SIGNALING if pseudo
-   numbers need special handling.  */
-#define HANDLE_PSEUDO_NUMBERS 0
+/* Default is to assume that pseudo numbers are not signaling.  */
 static inline int
 is_pseudo_signaling (uint32_t exi, uint32_t hxi)
 {
diff --git a/sysdeps/x86/fpu/nan-pseudo-number.h b/sysdeps/x86/fpu/nan-pseudo-number.h
index e4e015b09f..84a05ea040 100644
--- a/sysdeps/x86/fpu/nan-pseudo-number.h
+++ b/sysdeps/x86/fpu/nan-pseudo-number.h
@@ -19,7 +19,6 @@
 #ifndef NAN_PSEUDO_NUMBER_H
 #define NAN_PSEUDO_NUMBER_H	1
 
-#define HANDLE_PSEUDO_NUMBERS 1
 /* Pseudo numbers on x86 are always signaling.  */
 static inline int
 is_pseudo_signaling (uint32_t exi, uint32_t hxi)
-- 
2.29.2


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 2/2] Limit unnormal tests to supported long double formats
  2021-01-04 14:24 [PATCH 0/2] unnormal test case fixes Siddhesh Poyarekar
  2021-01-04 14:24 ` [PATCH 1/2] Drop nan-pseudo-number.h usage from tests Siddhesh Poyarekar
@ 2021-01-04 14:24 ` Siddhesh Poyarekar
  2021-01-12  7:22   ` [PING][PATCH " Siddhesh Poyarekar
  1 sibling, 1 reply; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-04 14:24 UTC (permalink / raw)
  To: libc-alpha; +Cc: fweimer, joseph

Use the right argument code (j) in the unnormal tests and prevent
compilation of the tests in anything other than long double and
Float64x.  Additionally, cast inputs from the
ieee_long_double_shape_type struct to Float64x to properly test it.
---
 math/libm-test-driver.c        | 16 +++++++++-------
 math/libm-test-fpclassify.inc  | 18 +++++++++---------
 math/libm-test-isinf.inc       | 18 +++++++++---------
 math/libm-test-isnan.inc       | 18 +++++++++---------
 math/libm-test-issignaling.inc | 18 +++++++++---------
 math/libm-test-support.h       |  2 ++
 math/test-float64x.h           |  1 +
 math/test-ldouble.h            |  1 +
 8 files changed, 49 insertions(+), 43 deletions(-)

diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c
index f7c0861c39..6826ffac20 100644
--- a/math/libm-test-driver.c
+++ b/math/libm-test-driver.c
@@ -123,7 +123,7 @@ const char qtype_str[] = TYPE_STR;
 #define snan_value_ld	__builtin_nansl ("")
 
 /* For pseudo-normal number tests.  */
-#if TEST_COND_intel96
+#if TEST_COND_unnormal
 # include <math_ldbl.h>
 #define pseudo_inf { .parts = { 0x00000000, 0x00000000, 0x7fff }}
 #define pseudo_zero { .parts = { 0x00000000, 0x00000000, 0x0100 }}
@@ -327,8 +327,8 @@ struct test_f_i_data
   } rd, rn, rz, ru;
 };
 /* Used for RUN_TEST_LOOP_f_i_tg_u and RUN_TEST_LOOP_f_b_tg_u.  */
-#if TEST_COND_intel96
-struct test_f_i_data_u
+#if TEST_COND_unnormal
+struct test_j_i_data_u
 {
   const char *arg_str;
   ieee_long_double_shape_type arg;
@@ -855,17 +855,19 @@ struct test_Ff_b1_data
 		       (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
 		       (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);	\
   ROUND_RESTORE_ ## ROUNDING_MODE
-#define RUN_TEST_LOOP_f_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
+#define RUN_TEST_LOOP_j_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
   IF_ROUND_INIT_ ## ROUNDING_MODE					\
   for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
-  RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value,	\
+  RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME,			\
+		   (FLOAT)(ARRAY)[i].arg.value,				\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);		\
   ROUND_RESTORE_ ## ROUNDING_MODE
-#define RUN_TEST_LOOP_f_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
+#define RUN_TEST_LOOP_j_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
   IF_ROUND_INIT_ ## ROUNDING_MODE					\
   for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
-  RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value,	\
+  RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME,			\
+		   (FLOAT)(ARRAY)[i].arg.value,				\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);		\
   ROUND_RESTORE_ ## ROUNDING_MODE
diff --git a/math/libm-test-fpclassify.inc b/math/libm-test-fpclassify.inc
index c1c7e1ead1..2243146f40 100644
--- a/math/libm-test-fpclassify.inc
+++ b/math/libm-test-fpclassify.inc
@@ -37,14 +37,14 @@ static const struct test_f_i_data fpclassify_test_data[] =
     TEST_f_i (fpclassify, -min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if TEST_COND_intel96
-static const struct test_f_i_data_u fpclassify_test_data_u[] =
+#if TEST_COND_unnormal
+static const struct test_j_i_data_u fpclassify_test_data_u[] =
   {
-    TEST_f_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -52,8 +52,8 @@ static void
 fpclassify_test (void)
 {
   ALL_RM_TEST (fpclassify, 1, fpclassify_test_data, RUN_TEST_LOOP_f_i_tg, END);
-#if TEST_COND_intel96
-  ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_f_i_tg_u, END);
+#if TEST_COND_unnormal
+  ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_j_i_tg_u, END);
 #endif
 }
 
diff --git a/math/libm-test-isinf.inc b/math/libm-test-isinf.inc
index 7d4b27a45c..23b536ff17 100644
--- a/math/libm-test-isinf.inc
+++ b/math/libm-test-isinf.inc
@@ -37,14 +37,14 @@ static const struct test_f_i_data isinf_test_data[] =
     TEST_f_b (isinf, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if TEST_COND_intel96
-static const struct test_f_i_data_u isinf_test_data_u[] =
+#if TEST_COND_unnormal
+static const struct test_j_i_data_u isinf_test_data_u[] =
   {
-    TEST_f_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -52,8 +52,8 @@ static void
 isinf_test (void)
 {
   ALL_RM_TEST (isinf, 1, isinf_test_data, RUN_TEST_LOOP_f_b_tg, END);
-#if TEST_COND_intel96
-  ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
+#if TEST_COND_unnormal
+  ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
 #endif
 }
 
diff --git a/math/libm-test-isnan.inc b/math/libm-test-isnan.inc
index 501bb1856f..489b9c666e 100644
--- a/math/libm-test-isnan.inc
+++ b/math/libm-test-isnan.inc
@@ -37,14 +37,14 @@ static const struct test_f_i_data isnan_test_data[] =
     TEST_f_b (isnan, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if TEST_COND_intel96
-static const struct test_f_i_data_u isnan_test_data_u[] =
+#if TEST_COND_unnormal
+static const struct test_j_i_data_u isnan_test_data_u[] =
   {
-    TEST_f_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -52,8 +52,8 @@ static void
 isnan_test (void)
 {
   ALL_RM_TEST (isnan, 1, isnan_test_data, RUN_TEST_LOOP_f_b_tg, END);
-#if TEST_COND_intel96
-  ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
+#if TEST_COND_unnormal
+  ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
 #endif
 }
 
diff --git a/math/libm-test-issignaling.inc b/math/libm-test-issignaling.inc
index bea61a3664..31012f08e6 100644
--- a/math/libm-test-issignaling.inc
+++ b/math/libm-test-issignaling.inc
@@ -39,14 +39,14 @@ static const struct test_f_i_data issignaling_test_data[] =
     TEST_f_b (issignaling, -snan_value_MACRO, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 
-#if TEST_COND_intel96
-static const struct test_f_i_data_u issignaling_test_data_u[] =
+#if TEST_COND_unnormal
+static const struct test_j_i_data_u issignaling_test_data_u[] =
   {
-    TEST_f_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -54,8 +54,8 @@ static void
 issignaling_test (void)
 {
   ALL_RM_TEST (issignaling, 1, issignaling_test_data, RUN_TEST_LOOP_f_b_tg, END);
-#if TEST_COND_intel96
-  ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
+#if TEST_COND_unnormal
+  ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
 #endif
 }
 
diff --git a/math/libm-test-support.h b/math/libm-test-support.h
index ba67001454..c218e2611a 100644
--- a/math/libm-test-support.h
+++ b/math/libm-test-support.h
@@ -168,6 +168,8 @@ extern const char doc[];
 #define TEST_COND_before_rounding	(!TININESS_AFTER_ROUNDING)
 #define TEST_COND_after_rounding	TININESS_AFTER_ROUNDING
 
+#define TEST_COND_unnormal (TEST_COND_intel96 && defined TEST_UNNORMAL)
+
 int enable_test (int);
 void init_max_error (const char *, int, int);
 void print_max_error (const char *);
diff --git a/math/test-float64x.h b/math/test-float64x.h
index 578323b809..59bda920ac 100644
--- a/math/test-float64x.h
+++ b/math/test-float64x.h
@@ -40,3 +40,4 @@
 #define FTOSTR strfromf64x
 #define snan_value_MACRO SNANF64X
 #define FUNC_NARROW_PREFIX f64x
+#define TEST_UNNORMAL 1
diff --git a/math/test-ldouble.h b/math/test-ldouble.h
index 6037782292..e0b7c94ca6 100644
--- a/math/test-ldouble.h
+++ b/math/test-ldouble.h
@@ -41,3 +41,4 @@
 #define FTOSTR strfroml
 #define snan_value_MACRO SNANL
 #define TEST_FLOATN 0
+#define TEST_UNNORMAL 1
-- 
2.29.2


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] Drop nan-pseudo-number.h usage from tests
  2021-01-04 14:24 ` [PATCH 1/2] Drop nan-pseudo-number.h usage from tests Siddhesh Poyarekar
@ 2021-01-04 14:29   ` Florian Weimer
  2021-01-04 14:37     ` Siddhesh Poyarekar
  0 siblings, 1 reply; 13+ messages in thread
From: Florian Weimer @ 2021-01-04 14:29 UTC (permalink / raw)
  To: Siddhesh Poyarekar; +Cc: libc-alpha, joseph

* Siddhesh Poyarekar:

> Make the tests use TEST_COND_intel96 to decide on whether to build the
> unnormal tests instead of the macro in nan-pseudo-number.h and then
> drop the header inclusion.  This unbreaks test runs on all
> architectures that do not have ldbl-96.
>
> Also drop the HANDLE_PSEUDO_NUMBERS macro since it is not used
> anywhere.

Is this identical to the patch you shared previously?  Then it fixes the
build at least, so please push this.

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] Drop nan-pseudo-number.h usage from tests
  2021-01-04 14:29   ` Florian Weimer
@ 2021-01-04 14:37     ` Siddhesh Poyarekar
  2021-01-04 15:13       ` Szabolcs Nagy
  2021-01-04 15:17       ` Florian Weimer
  0 siblings, 2 replies; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-04 14:37 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha, joseph

On 1/4/21 7:59 PM, Florian Weimer via Libc-alpha wrote:
> Is this identical to the patch you shared previously?  Then it fixes the
> build at least, so please push this.

There's an additional change which drops the HANDLE_PSEUDO_NUMBERS macro 
altogether since it's unused now.  That should have no functional 
difference though.

Siddhesh

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] Drop nan-pseudo-number.h usage from tests
  2021-01-04 14:37     ` Siddhesh Poyarekar
@ 2021-01-04 15:13       ` Szabolcs Nagy
  2021-01-04 15:21         ` Siddhesh Poyarekar
  2021-01-04 15:17       ` Florian Weimer
  1 sibling, 1 reply; 13+ messages in thread
From: Szabolcs Nagy @ 2021-01-04 15:13 UTC (permalink / raw)
  To: Siddhesh Poyarekar; +Cc: Florian Weimer, libc-alpha, joseph

The 01/04/2021 20:07, Siddhesh Poyarekar via Libc-alpha wrote:
> On 1/4/21 7:59 PM, Florian Weimer via Libc-alpha wrote:
> > Is this identical to the patch you shared previously?  Then it fixes the
> > build at least, so please push this.
> 
> There's an additional change which drops the HANDLE_PSEUDO_NUMBERS macro
> altogether since it's unused now.  That should have no functional difference
> though.

please fix the build.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] Drop nan-pseudo-number.h usage from tests
  2021-01-04 14:37     ` Siddhesh Poyarekar
  2021-01-04 15:13       ` Szabolcs Nagy
@ 2021-01-04 15:17       ` Florian Weimer
  2021-01-04 15:21         ` Siddhesh Poyarekar
  1 sibling, 1 reply; 13+ messages in thread
From: Florian Weimer @ 2021-01-04 15:17 UTC (permalink / raw)
  To: Siddhesh Poyarekar; +Cc: libc-alpha, joseph

* Siddhesh Poyarekar:

> On 1/4/21 7:59 PM, Florian Weimer via Libc-alpha wrote:
>> Is this identical to the patch you shared previously?  Then it fixes the
>> build at least, so please push this.
>
> There's an additional change which drops the HANDLE_PSEUDO_NUMBERS
> macro altogether since it's unused now.  That should have no
> functional difference though.

I think this is okay, build-many-glibcs.py hasn't completed yet, but a
good mix of targets have built successfully.

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] Drop nan-pseudo-number.h usage from tests
  2021-01-04 15:13       ` Szabolcs Nagy
@ 2021-01-04 15:21         ` Siddhesh Poyarekar
  0 siblings, 0 replies; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-04 15:21 UTC (permalink / raw)
  To: Szabolcs Nagy; +Cc: Florian Weimer, libc-alpha, joseph

On 1/4/21 8:43 PM, Szabolcs Nagy via Libc-alpha wrote:
> The 01/04/2021 20:07, Siddhesh Poyarekar via Libc-alpha wrote:
>> On 1/4/21 7:59 PM, Florian Weimer via Libc-alpha wrote:
>>> Is this identical to the patch you shared previously?  Then it fixes the
>>> build at least, so please push this.
>>
>> There's an additional change which drops the HANDLE_PSEUDO_NUMBERS macro
>> altogether since it's unused now.  That should have no functional difference
>> though.
> 
> please fix the build.
> 

Done, sorry about the breakage again.

Siddhesh

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] Drop nan-pseudo-number.h usage from tests
  2021-01-04 15:17       ` Florian Weimer
@ 2021-01-04 15:21         ` Siddhesh Poyarekar
  0 siblings, 0 replies; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-04 15:21 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha, joseph

On 1/4/21 8:47 PM, Florian Weimer via Libc-alpha wrote:
> I think this is okay, build-many-glibcs.py hasn't completed yet, but a
> good mix of targets have built successfully.

Thanks Florian!

Siddhesh

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PING][PATCH 2/2] Limit unnormal tests to supported long double formats
  2021-01-04 14:24 ` [PATCH 2/2] Limit unnormal tests to supported long double formats Siddhesh Poyarekar
@ 2021-01-12  7:22   ` Siddhesh Poyarekar
  2021-01-12 18:21     ` Joseph Myers
  0 siblings, 1 reply; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-12  7:22 UTC (permalink / raw)
  To: Siddhesh Poyarekar, libc-alpha; +Cc: fweimer, joseph

On 1/4/21 7:54 PM, Siddhesh Poyarekar via Libc-alpha wrote:
> Use the right argument code (j) in the unnormal tests and prevent
> compilation of the tests in anything other than long double and
> Float64x.  Additionally, cast inputs from the
> ieee_long_double_shape_type struct to Float64x to properly test it.
> ---
>   math/libm-test-driver.c        | 16 +++++++++-------
>   math/libm-test-fpclassify.inc  | 18 +++++++++---------
>   math/libm-test-isinf.inc       | 18 +++++++++---------
>   math/libm-test-isnan.inc       | 18 +++++++++---------
>   math/libm-test-issignaling.inc | 18 +++++++++---------
>   math/libm-test-support.h       |  2 ++
>   math/test-float64x.h           |  1 +
>   math/test-ldouble.h            |  1 +
>   8 files changed, 49 insertions(+), 43 deletions(-)
> 
> diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c
> index f7c0861c39..6826ffac20 100644
> --- a/math/libm-test-driver.c
> +++ b/math/libm-test-driver.c
> @@ -123,7 +123,7 @@ const char qtype_str[] = TYPE_STR;
>   #define snan_value_ld	__builtin_nansl ("")
>   
>   /* For pseudo-normal number tests.  */
> -#if TEST_COND_intel96
> +#if TEST_COND_unnormal
>   # include <math_ldbl.h>
>   #define pseudo_inf { .parts = { 0x00000000, 0x00000000, 0x7fff }}
>   #define pseudo_zero { .parts = { 0x00000000, 0x00000000, 0x0100 }}
> @@ -327,8 +327,8 @@ struct test_f_i_data
>     } rd, rn, rz, ru;
>   };
>   /* Used for RUN_TEST_LOOP_f_i_tg_u and RUN_TEST_LOOP_f_b_tg_u.  */
> -#if TEST_COND_intel96
> -struct test_f_i_data_u
> +#if TEST_COND_unnormal
> +struct test_j_i_data_u
>   {
>     const char *arg_str;
>     ieee_long_double_shape_type arg;
> @@ -855,17 +855,19 @@ struct test_Ff_b1_data
>   		       (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
>   		       (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);	\
>     ROUND_RESTORE_ ## ROUNDING_MODE
> -#define RUN_TEST_LOOP_f_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
> +#define RUN_TEST_LOOP_j_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
>     IF_ROUND_INIT_ ## ROUNDING_MODE					\
>     for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
> -  RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value,	\
> +  RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME,			\
> +		   (FLOAT)(ARRAY)[i].arg.value,				\
>   		   (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
>   		   (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);		\
>     ROUND_RESTORE_ ## ROUNDING_MODE
> -#define RUN_TEST_LOOP_f_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
> +#define RUN_TEST_LOOP_j_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
>     IF_ROUND_INIT_ ## ROUNDING_MODE					\
>     for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
> -  RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value,	\
> +  RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME,			\
> +		   (FLOAT)(ARRAY)[i].arg.value,				\
>   		   (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
>   		   (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);		\
>     ROUND_RESTORE_ ## ROUNDING_MODE
> diff --git a/math/libm-test-fpclassify.inc b/math/libm-test-fpclassify.inc
> index c1c7e1ead1..2243146f40 100644
> --- a/math/libm-test-fpclassify.inc
> +++ b/math/libm-test-fpclassify.inc
> @@ -37,14 +37,14 @@ static const struct test_f_i_data fpclassify_test_data[] =
>       TEST_f_i (fpclassify, -min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   
> -#if TEST_COND_intel96
> -static const struct test_f_i_data_u fpclassify_test_data_u[] =
> +#if TEST_COND_unnormal
> +static const struct test_j_i_data_u fpclassify_test_data_u[] =
>     {
> -    TEST_f_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   #endif
>   
> @@ -52,8 +52,8 @@ static void
>   fpclassify_test (void)
>   {
>     ALL_RM_TEST (fpclassify, 1, fpclassify_test_data, RUN_TEST_LOOP_f_i_tg, END);
> -#if TEST_COND_intel96
> -  ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_f_i_tg_u, END);
> +#if TEST_COND_unnormal
> +  ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_j_i_tg_u, END);
>   #endif
>   }
>   
> diff --git a/math/libm-test-isinf.inc b/math/libm-test-isinf.inc
> index 7d4b27a45c..23b536ff17 100644
> --- a/math/libm-test-isinf.inc
> +++ b/math/libm-test-isinf.inc
> @@ -37,14 +37,14 @@ static const struct test_f_i_data isinf_test_data[] =
>       TEST_f_b (isinf, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   
> -#if TEST_COND_intel96
> -static const struct test_f_i_data_u isinf_test_data_u[] =
> +#if TEST_COND_unnormal
> +static const struct test_j_i_data_u isinf_test_data_u[] =
>     {
> -    TEST_f_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   #endif
>   
> @@ -52,8 +52,8 @@ static void
>   isinf_test (void)
>   {
>     ALL_RM_TEST (isinf, 1, isinf_test_data, RUN_TEST_LOOP_f_b_tg, END);
> -#if TEST_COND_intel96
> -  ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
> +#if TEST_COND_unnormal
> +  ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
>   #endif
>   }
>   
> diff --git a/math/libm-test-isnan.inc b/math/libm-test-isnan.inc
> index 501bb1856f..489b9c666e 100644
> --- a/math/libm-test-isnan.inc
> +++ b/math/libm-test-isnan.inc
> @@ -37,14 +37,14 @@ static const struct test_f_i_data isnan_test_data[] =
>       TEST_f_b (isnan, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   
> -#if TEST_COND_intel96
> -static const struct test_f_i_data_u isnan_test_data_u[] =
> +#if TEST_COND_unnormal
> +static const struct test_j_i_data_u isnan_test_data_u[] =
>     {
> -    TEST_f_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   #endif
>   
> @@ -52,8 +52,8 @@ static void
>   isnan_test (void)
>   {
>     ALL_RM_TEST (isnan, 1, isnan_test_data, RUN_TEST_LOOP_f_b_tg, END);
> -#if TEST_COND_intel96
> -  ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
> +#if TEST_COND_unnormal
> +  ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
>   #endif
>   }
>   
> diff --git a/math/libm-test-issignaling.inc b/math/libm-test-issignaling.inc
> index bea61a3664..31012f08e6 100644
> --- a/math/libm-test-issignaling.inc
> +++ b/math/libm-test-issignaling.inc
> @@ -39,14 +39,14 @@ static const struct test_f_i_data issignaling_test_data[] =
>       TEST_f_b (issignaling, -snan_value_MACRO, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   
> -#if TEST_COND_intel96
> -static const struct test_f_i_data_u issignaling_test_data_u[] =
> +#if TEST_COND_unnormal
> +static const struct test_j_i_data_u issignaling_test_data_u[] =
>     {
> -    TEST_f_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> -    TEST_f_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
> +    TEST_j_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
>     };
>   #endif
>   
> @@ -54,8 +54,8 @@ static void
>   issignaling_test (void)
>   {
>     ALL_RM_TEST (issignaling, 1, issignaling_test_data, RUN_TEST_LOOP_f_b_tg, END);
> -#if TEST_COND_intel96
> -  ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
> +#if TEST_COND_unnormal
> +  ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
>   #endif
>   }
>   
> diff --git a/math/libm-test-support.h b/math/libm-test-support.h
> index ba67001454..c218e2611a 100644
> --- a/math/libm-test-support.h
> +++ b/math/libm-test-support.h
> @@ -168,6 +168,8 @@ extern const char doc[];
>   #define TEST_COND_before_rounding	(!TININESS_AFTER_ROUNDING)
>   #define TEST_COND_after_rounding	TININESS_AFTER_ROUNDING
>   
> +#define TEST_COND_unnormal (TEST_COND_intel96 && defined TEST_UNNORMAL)
> +
>   int enable_test (int);
>   void init_max_error (const char *, int, int);
>   void print_max_error (const char *);
> diff --git a/math/test-float64x.h b/math/test-float64x.h
> index 578323b809..59bda920ac 100644
> --- a/math/test-float64x.h
> +++ b/math/test-float64x.h
> @@ -40,3 +40,4 @@
>   #define FTOSTR strfromf64x
>   #define snan_value_MACRO SNANF64X
>   #define FUNC_NARROW_PREFIX f64x
> +#define TEST_UNNORMAL 1
> diff --git a/math/test-ldouble.h b/math/test-ldouble.h
> index 6037782292..e0b7c94ca6 100644
> --- a/math/test-ldouble.h
> +++ b/math/test-ldouble.h
> @@ -41,3 +41,4 @@
>   #define FTOSTR strfroml
>   #define snan_value_MACRO SNANL
>   #define TEST_FLOATN 0
> +#define TEST_UNNORMAL 1
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PING][PATCH 2/2] Limit unnormal tests to supported long double formats
  2021-01-12  7:22   ` [PING][PATCH " Siddhesh Poyarekar
@ 2021-01-12 18:21     ` Joseph Myers
  2021-01-13  4:38       ` [PATCH v2] Use the right argument code in unnormal tests Siddhesh Poyarekar
  0 siblings, 1 reply; 13+ messages in thread
From: Joseph Myers @ 2021-01-12 18:21 UTC (permalink / raw)
  To: Siddhesh Poyarekar; +Cc: Siddhesh Poyarekar, libc-alpha, fweimer

On Tue, 12 Jan 2021, Siddhesh Poyarekar wrote:

> On 1/4/21 7:54 PM, Siddhesh Poyarekar via Libc-alpha wrote:
> > Use the right argument code (j) in the unnormal tests and prevent
> > compilation of the tests in anything other than long double and
> > Float64x.  Additionally, cast inputs from the
> > ieee_long_double_shape_type struct to Float64x to properly test it.

I don't see how TEST_COND_unnormal makes sense here.  When would it ever 
have a different value from TEST_COND_intel96?  TEST_UNNORMAL seems 
redundant since TEST_COND_intel96 should always be false anyway except for 
cases where long double or _Float64x is being tested.

If ia64 processors handle some of these representations differently from 
x86 processors (something best checked on hardware) then there might need 
to be different conditionals for that, depending on whether some, all or 
none of these tests describe semantics that correspond to how ia64 
hardware handles these representations.  But that would involve some sort 
of architecture-specific macro definition, not one in the headers for 
particular types being tested.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v2] Use the right argument code in unnormal tests
  2021-01-12 18:21     ` Joseph Myers
@ 2021-01-13  4:38       ` Siddhesh Poyarekar
  2021-01-13 17:41         ` Joseph Myers
  0 siblings, 1 reply; 13+ messages in thread
From: Siddhesh Poyarekar @ 2021-01-13  4:38 UTC (permalink / raw)
  To: libc-alpha; +Cc: joseph

Use the right argument code (j) in the unnormal tests and cast inputs
from the ieee_long_double_shape_type struct to Float64x to properly
test it.
---
Changes:

- Dropped the TEST_COND_unnormal macro since TEST_COND_intel96 was
  sufficient; I failed to notice that TEST_COND_intel96 would only be
  true for long double.

 math/libm-test-driver.c        | 12 +++++++-----
 math/libm-test-fpclassify.inc  | 14 +++++++-------
 math/libm-test-isinf.inc       | 14 +++++++-------
 math/libm-test-isnan.inc       | 14 +++++++-------
 math/libm-test-issignaling.inc | 14 +++++++-------
 5 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c
index f7c0861c39..0a430a8606 100644
--- a/math/libm-test-driver.c
+++ b/math/libm-test-driver.c
@@ -328,7 +328,7 @@ struct test_f_i_data
 };
 /* Used for RUN_TEST_LOOP_f_i_tg_u and RUN_TEST_LOOP_f_b_tg_u.  */
 #if TEST_COND_intel96
-struct test_f_i_data_u
+struct test_j_i_data_u
 {
   const char *arg_str;
   ieee_long_double_shape_type arg;
@@ -855,17 +855,19 @@ struct test_Ff_b1_data
 		       (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
 		       (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);	\
   ROUND_RESTORE_ ## ROUNDING_MODE
-#define RUN_TEST_LOOP_f_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
+#define RUN_TEST_LOOP_j_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
   IF_ROUND_INIT_ ## ROUNDING_MODE					\
   for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
-  RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value,	\
+  RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME,			\
+		   (FLOAT)(ARRAY)[i].arg.value,				\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);		\
   ROUND_RESTORE_ ## ROUNDING_MODE
-#define RUN_TEST_LOOP_f_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
+#define RUN_TEST_LOOP_j_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
   IF_ROUND_INIT_ ## ROUNDING_MODE					\
   for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
-  RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value,	\
+  RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME,			\
+		   (FLOAT)(ARRAY)[i].arg.value,				\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.expected,		\
 		   (ARRAY)[i].RM_##ROUNDING_MODE.exceptions);		\
   ROUND_RESTORE_ ## ROUNDING_MODE
diff --git a/math/libm-test-fpclassify.inc b/math/libm-test-fpclassify.inc
index c1c7e1ead1..1e30479473 100644
--- a/math/libm-test-fpclassify.inc
+++ b/math/libm-test-fpclassify.inc
@@ -38,13 +38,13 @@ static const struct test_f_i_data fpclassify_test_data[] =
   };
 
 #if TEST_COND_intel96
-static const struct test_f_i_data_u fpclassify_test_data_u[] =
+static const struct test_j_i_data_u fpclassify_test_data_u[] =
   {
-    TEST_f_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -53,7 +53,7 @@ fpclassify_test (void)
 {
   ALL_RM_TEST (fpclassify, 1, fpclassify_test_data, RUN_TEST_LOOP_f_i_tg, END);
 #if TEST_COND_intel96
-  ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_f_i_tg_u, END);
+  ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_j_i_tg_u, END);
 #endif
 }
 
diff --git a/math/libm-test-isinf.inc b/math/libm-test-isinf.inc
index 7d4b27a45c..7eeb33c211 100644
--- a/math/libm-test-isinf.inc
+++ b/math/libm-test-isinf.inc
@@ -38,13 +38,13 @@ static const struct test_f_i_data isinf_test_data[] =
   };
 
 #if TEST_COND_intel96
-static const struct test_f_i_data_u isinf_test_data_u[] =
+static const struct test_j_i_data_u isinf_test_data_u[] =
   {
-    TEST_f_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -53,7 +53,7 @@ isinf_test (void)
 {
   ALL_RM_TEST (isinf, 1, isinf_test_data, RUN_TEST_LOOP_f_b_tg, END);
 #if TEST_COND_intel96
-  ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
+  ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
 #endif
 }
 
diff --git a/math/libm-test-isnan.inc b/math/libm-test-isnan.inc
index 501bb1856f..c78143da37 100644
--- a/math/libm-test-isnan.inc
+++ b/math/libm-test-isnan.inc
@@ -38,13 +38,13 @@ static const struct test_f_i_data isnan_test_data[] =
   };
 
 #if TEST_COND_intel96
-static const struct test_f_i_data_u isnan_test_data_u[] =
+static const struct test_j_i_data_u isnan_test_data_u[] =
   {
-    TEST_f_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -53,7 +53,7 @@ isnan_test (void)
 {
   ALL_RM_TEST (isnan, 1, isnan_test_data, RUN_TEST_LOOP_f_b_tg, END);
 #if TEST_COND_intel96
-  ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
+  ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
 #endif
 }
 
diff --git a/math/libm-test-issignaling.inc b/math/libm-test-issignaling.inc
index bea61a3664..3e27474f77 100644
--- a/math/libm-test-issignaling.inc
+++ b/math/libm-test-issignaling.inc
@@ -40,13 +40,13 @@ static const struct test_f_i_data issignaling_test_data[] =
   };
 
 #if TEST_COND_intel96
-static const struct test_f_i_data_u issignaling_test_data_u[] =
+static const struct test_j_i_data_u issignaling_test_data_u[] =
   {
-    TEST_f_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
-    TEST_f_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_j_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
   };
 #endif
 
@@ -55,7 +55,7 @@ issignaling_test (void)
 {
   ALL_RM_TEST (issignaling, 1, issignaling_test_data, RUN_TEST_LOOP_f_b_tg, END);
 #if TEST_COND_intel96
-  ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END);
+  ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END);
 #endif
 }
 
-- 
2.29.2


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] Use the right argument code in unnormal tests
  2021-01-13  4:38       ` [PATCH v2] Use the right argument code in unnormal tests Siddhesh Poyarekar
@ 2021-01-13 17:41         ` Joseph Myers
  0 siblings, 0 replies; 13+ messages in thread
From: Joseph Myers @ 2021-01-13 17:41 UTC (permalink / raw)
  To: Siddhesh Poyarekar; +Cc: libc-alpha

On Wed, 13 Jan 2021, Siddhesh Poyarekar via Libc-alpha wrote:

> Use the right argument code (j) in the unnormal tests and cast inputs
> from the ieee_long_double_shape_type struct to Float64x to properly
> test it.

This patch is OK.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2021-01-13 17:41 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-04 14:24 [PATCH 0/2] unnormal test case fixes Siddhesh Poyarekar
2021-01-04 14:24 ` [PATCH 1/2] Drop nan-pseudo-number.h usage from tests Siddhesh Poyarekar
2021-01-04 14:29   ` Florian Weimer
2021-01-04 14:37     ` Siddhesh Poyarekar
2021-01-04 15:13       ` Szabolcs Nagy
2021-01-04 15:21         ` Siddhesh Poyarekar
2021-01-04 15:17       ` Florian Weimer
2021-01-04 15:21         ` Siddhesh Poyarekar
2021-01-04 14:24 ` [PATCH 2/2] Limit unnormal tests to supported long double formats Siddhesh Poyarekar
2021-01-12  7:22   ` [PING][PATCH " Siddhesh Poyarekar
2021-01-12 18:21     ` Joseph Myers
2021-01-13  4:38       ` [PATCH v2] Use the right argument code in unnormal tests Siddhesh Poyarekar
2021-01-13 17:41         ` Joseph Myers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).