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


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

Re: [PATCH 1/N] [x86_64] Vectorized math functions


2014-11-21 20:46 GMT+03:00 Joseph Myers <joseph@codesourcery.com>:
> On Wed, 19 Nov 2014, Andrew Senkevich wrote:
>
>> +#ifndef FUNC_TEST
>> +# define FUNC_TEST FUNC
>> +#endif
>
> Rather than #ifndef / #define (a discouraged design pattern in glibc,
> because it means that typos in the macro name in calling files would not
> be detected), I think it would be better to change all existing places
> defining FUNC to do:
>
> #define FUNC_TEST(function) FUNC (function)

diff --git a/math/libm-test.inc b/math/libm-test.inc
index f86a4fa..5d2ed1a 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -1301,8 +1301,8 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- check_float (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
-     EXCEPTIONS); \
+ check_float (test_name, FUNC_TEST (FUNC_NAME) (ARG), \
+     EXPECTED, EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
   while (0)
@@ -1319,7 +1319,7 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- check_float (test_name, FUNC (FUNC_NAME) (ARG1, ARG2), \
+ check_float (test_name, FUNC_TEST (FUNC_NAME) (ARG1, ARG2), \
      EXPECTED, EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1346,7 +1346,7 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- check_float (test_name, FUNC (FUNC_NAME) (ARG1, ARG2, ARG3), \
+ check_float (test_name, FUNC_TEST (FUNC_NAME) (ARG1, ARG2, ARG3), \
      EXPECTED, EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1366,7 +1366,7 @@ struct test_fFF_11_data
       { \
  COMMON_TEST_SETUP (ARG_STR); \
  check_float (test_name, \
-     FUNC (FUNC_NAME) (BUILD_COMPLEX (ARG1, ARG2)), \
+     FUNC_TEST (FUNC_NAME) (BUILD_COMPLEX (ARG1, ARG2)),\
      EXPECTED, EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1387,7 +1387,7 @@ struct test_fFF_11_data
       { \
  COMMON_TEST_SETUP (ARG_STR); \
  (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
- check_float (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ check_float (test_name, FUNC_TEST (FUNC_NAME) (ARG), EXPECTED, \
      EXCEPTIONS); \
  EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
  if (EXTRA_TEST) \
@@ -1414,7 +1414,7 @@ struct test_fFF_11_data
       { \
  COMMON_TEST_SETUP (ARG_STR); \
  (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
- check_float (test_name, FUNC (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
+ check_float (test_name, FUNC_TEST (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
      EXPECTED, EXCEPTIONS); \
  EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
  if (EXTRA_TEST) \
@@ -1441,7 +1441,7 @@ struct test_fFF_11_data
       { \
  COMMON_TEST_SETUP (ARG_STR); \
  (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
- check_float (test_name, FUNC (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
+ check_float (test_name, FUNC_TEST (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
      EXPECTED, EXCEPTIONS); \
  EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
  if (EXTRA_TEST) \
@@ -1469,7 +1469,7 @@ struct test_fFF_11_data
  COMMON_TEST_SETUP (ARG_STR); \
  (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
  check_float (test_name, \
-     FUNC (FUNC_NAME) (ARG1, ARG2, &(EXTRA_VAR)), \
+     FUNC_TEST (FUNC_NAME) (ARG1, ARG2, &(EXTRA_VAR)), \
      EXPECTED, EXCEPTIONS); \
  EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
  if (EXTRA_TEST) \
@@ -1497,7 +1497,7 @@ struct test_fFF_11_data
       { \
  COMMON_TEST_SETUP (ARG_STR); \
  check_complex (test_name, \
-       FUNC (FUNC_NAME) (BUILD_COMPLEX (ARGR, ARGC)), \
+       FUNC_TEST (FUNC_NAME) (BUILD_COMPLEX (ARGR, ARGC)), \
        BUILD_COMPLEX (EXPR, EXPC), EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1518,8 +1518,8 @@ struct test_fFF_11_data
       { \
  COMMON_TEST_SETUP (ARG_STR); \
  check_complex (test_name, \
-       FUNC (FUNC_NAME) (BUILD_COMPLEX (ARG1R, ARG1C), \
- BUILD_COMPLEX (ARG2R, ARG2C)), \
+       FUNC_TEST (FUNC_NAME) (BUILD_COMPLEX (ARG1R, ARG1C), \
+      BUILD_COMPLEX (ARG2R, ARG2C)), \
        BUILD_COMPLEX (EXPR, EXPC), EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1539,7 +1539,7 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- check_int (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ check_int (test_name, FUNC_TEST (FUNC_NAME) (ARG), EXPECTED, \
    EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1592,7 +1592,7 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- check_bool (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ check_bool (test_name, FUNC_TEST (FUNC_NAME) (ARG), EXPECTED, \
     EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1626,7 +1626,7 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- check_long (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ check_long (test_name, FUNC_TEST (FUNC_NAME) (ARG), EXPECTED, \
     EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
@@ -1643,8 +1643,8 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- check_longlong (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
- EXCEPTIONS); \
+ check_longlong (test_name, FUNC_TEST (FUNC_NAME) (ARG), \
+ EXPECTED, EXCEPTIONS); \
  COMMON_TEST_CLEANUP; \
       } \
   while (0)
@@ -1663,7 +1663,7 @@ struct test_fFF_11_data
     if (enable_test (EXCEPTIONS)) \
       { \
  COMMON_TEST_SETUP (ARG_STR); \
- FUNC (FUNC_NAME) (ARG, &(EXTRA1_VAR), &(EXTRA2_VAR)); \
+ FUNC_TEST (FUNC_NAME) (ARG, &(EXTRA1_VAR), &(EXTRA2_VAR)); \
  EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
  if (EXTRA1_TEST) \
   check_float (extra1_name, EXTRA1_VAR, EXTRA1_EXPECTED, \
diff --git a/math/test-double.c b/math/test-double.c
index 5d2d8cc..e666197 100644
--- a/math/test-double.c
+++ b/math/test-double.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */

 #define FUNC(function) function
+#define FUNC_TEST(function) FUNC (function)
 #define FLOAT double
 #define TEST_MSG "testing double (without inline functions)\n"
 #define MATHCONST(x) x
diff --git a/math/test-float.c b/math/test-float.c
index 533aee4..cb68a5c 100644
--- a/math/test-float.c
+++ b/math/test-float.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */

 #define FUNC(function) function ## f
+#define FUNC_TEST(function) FUNC (function)
 #define FLOAT float
 #define TEST_MSG "testing float (without inline functions)\n"
 #define MATHCONST(x) x
diff --git a/math/test-idouble.c b/math/test-idouble.c
index 670384d..665f78c 100644
--- a/math/test-idouble.c
+++ b/math/test-idouble.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */

 #define FUNC(function) function
+#define FUNC_TEST(function) FUNC (function)
 #define FLOAT double
 #define TEST_MSG "testing double (inline functions)\n"
 #define MATHCONST(x) x
diff --git a/math/test-ifloat.c b/math/test-ifloat.c
index b4de284..41255e9 100644
--- a/math/test-ifloat.c
+++ b/math/test-ifloat.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */

 #define FUNC(function) function ## f
+#define FUNC_TEST(function) FUNC (function)
 #define FLOAT float
 #define TEST_MSG "testing float (inline functions)\n"
 #define MATHCONST(x) x
diff --git a/math/test-ildoubl.c b/math/test-ildoubl.c
index ab5eadb..69ad35e 100644
--- a/math/test-ildoubl.c
+++ b/math/test-ildoubl.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */

 #define FUNC(function) function##l
+#define FUNC_TEST(function) FUNC (function)
 #define FLOAT long double
 #define TEST_MSG "testing long double (inline functions)\n"
 #define MATHCONST(x) x##L
diff --git a/math/test-ldouble.c b/math/test-ldouble.c
index 73504e2..07e4601 100644
--- a/math/test-ldouble.c
+++ b/math/test-ldouble.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */

 #define FUNC(function) function##l
+#define FUNC_TEST(function) FUNC (function)
 #define FLOAT long double
 #define TEST_MSG "testing long double (without inline functions)\n"
 #define MATHCONST(x) x##L

Is it OK for trunk?


--
WBR,
Andrew

Attachment: libmvec_1_of_N_v2.patch
Description: Binary data


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