diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-08-22 15:22:06 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-08-22 15:22:06 +0000 |
commit | debc4c9870dcf9f495561d3f7d8afd52878fecf0 (patch) | |
tree | 5ff16e11d43ca671d8ddda6b1ea3cc416dfa90b5 | |
parent | 16a25138c13c9d687a9bc2b130e1aea4d26257b7 (diff) | |
download | glibc-debc4c9870dcf9f495561d3f7d8afd52878fecf0.zip glibc-debc4c9870dcf9f495561d3f7d8afd52878fecf0.tar.gz glibc-debc4c9870dcf9f495561d3f7d8afd52878fecf0.tar.bz2 |
Don't redefine ROUNDING_TESTS_* in math/test-*-vlen*.h.
This patch completes the move of ROUNDING_TESTS_* macros to typo-proof
conventions by stopping redefining them in test-*-vlen*.h. Instead,
libm-test-driver.c is made to check TEST_MATHVEC when setting
non-to-nearest rounding modes.
Tested for x86_64.
* math/test-double-vlen2.h: Don't include <math-tests-rounding.h>.
(ROUNDING_TESTS_double): Remove.
* math/test-double-vlen4.h: Don't include <math-tests-rounding.h>.
(ROUNDING_TESTS_double): Remove.
* math/test-double-vlen8.h: Don't include <math-tests-rounding.h>.
(ROUNDING_TESTS_double): Remove.
* math/test-float-vlen16.h: Don't include <math-tests-rounding.h>.
(ROUNDING_TESTS_float): Remove.
* math/test-float-vlen4.h: Don't include <math-tests-rounding.h>.
(ROUNDING_TESTS_float): Remove.
* math/test-float-vlen8.h: Don't include <math-tests-rounding.h>.
(ROUNDING_TESTS_float): Remove.
* math/libm-test-driver.c (IF_ROUND_INIT_FE_DOWNWARD): Check
!TEST_MATHVEC here.
(IF_ROUND_INIT_FE_TOWARDZERO): Likewise.
(IF_ROUND_INIT_FE_UPWARD): Likewise.
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | math/libm-test-driver.c | 3 | ||||
-rw-r--r-- | math/test-double-vlen2.h | 4 | ||||
-rw-r--r-- | math/test-double-vlen4.h | 4 | ||||
-rw-r--r-- | math/test-double-vlen8.h | 4 | ||||
-rw-r--r-- | math/test-float-vlen16.h | 4 | ||||
-rw-r--r-- | math/test-float-vlen4.h | 4 | ||||
-rw-r--r-- | math/test-float-vlen8.h | 4 |
8 files changed, 20 insertions, 24 deletions
@@ -1,5 +1,22 @@ 2018-08-22 Joseph Myers <joseph@codesourcery.com> + * math/test-double-vlen2.h: Don't include <math-tests-rounding.h>. + (ROUNDING_TESTS_double): Remove. + * math/test-double-vlen4.h: Don't include <math-tests-rounding.h>. + (ROUNDING_TESTS_double): Remove. + * math/test-double-vlen8.h: Don't include <math-tests-rounding.h>. + (ROUNDING_TESTS_double): Remove. + * math/test-float-vlen16.h: Don't include <math-tests-rounding.h>. + (ROUNDING_TESTS_float): Remove. + * math/test-float-vlen4.h: Don't include <math-tests-rounding.h>. + (ROUNDING_TESTS_float): Remove. + * math/test-float-vlen8.h: Don't include <math-tests-rounding.h>. + (ROUNDING_TESTS_float): Remove. + * math/libm-test-driver.c (IF_ROUND_INIT_FE_DOWNWARD): Check + !TEST_MATHVEC here. + (IF_ROUND_INIT_FE_TOWARDZERO): Likewise. + (IF_ROUND_INIT_FE_UPWARD): Likewise. + * sysdeps/generic/math-tests-rounding.h: New file. * sysdeps/generic/math-tests.h: Include <math-tests-rounding.h>. (ROUNDING_TESTS_float): Do not define here. diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c index 2bbfdef..665274d 100644 --- a/math/libm-test-driver.c +++ b/math/libm-test-driver.c @@ -389,6 +389,7 @@ struct test_Ff_b1_data #define IF_ROUND_INIT_FE_DOWNWARD \ int save_round_mode = fegetround (); \ if (ROUNDING_TESTS (FLOAT, FE_DOWNWARD) \ + && !TEST_MATHVEC \ && fesetround (FE_DOWNWARD) == 0) #define IF_ROUND_INIT_FE_TONEAREST \ int save_round_mode = fegetround (); \ @@ -397,10 +398,12 @@ struct test_Ff_b1_data #define IF_ROUND_INIT_FE_TOWARDZERO \ int save_round_mode = fegetround (); \ if (ROUNDING_TESTS (FLOAT, FE_TOWARDZERO) \ + && !TEST_MATHVEC \ && fesetround (FE_TOWARDZERO) == 0) #define IF_ROUND_INIT_FE_UPWARD \ int save_round_mode = fegetround (); \ if (ROUNDING_TESTS (FLOAT, FE_UPWARD) \ + && !TEST_MATHVEC \ && fesetround (FE_UPWARD) == 0) #define ROUND_RESTORE_ /* Empty. */ #define ROUND_RESTORE_FE_DOWNWARD \ diff --git a/math/test-double-vlen2.h b/math/test-double-vlen2.h index 12f37ba..6c39e6d 100644 --- a/math/test-double-vlen2.h +++ b/math/test-double-vlen2.h @@ -19,10 +19,6 @@ #include "test-double.h" #include "test-math-no-inline.h" #include "test-math-vector.h" -#include <math-tests-rounding.h> - -#undef ROUNDING_TESTS_double -#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) #define VEC_SUFF _vlen2 #define VEC_LEN 2 diff --git a/math/test-double-vlen4.h b/math/test-double-vlen4.h index a28fef3..3193bc0 100644 --- a/math/test-double-vlen4.h +++ b/math/test-double-vlen4.h @@ -19,10 +19,6 @@ #include "test-double.h" #include "test-math-no-inline.h" #include "test-math-vector.h" -#include <math-tests-rounding.h> - -#undef ROUNDING_TESTS_double -#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) #define VEC_SUFF _vlen4 #define VEC_LEN 4 diff --git a/math/test-double-vlen8.h b/math/test-double-vlen8.h index 93e4dab..d769da9 100644 --- a/math/test-double-vlen8.h +++ b/math/test-double-vlen8.h @@ -19,10 +19,6 @@ #include "test-double.h" #include "test-math-no-inline.h" #include "test-math-vector.h" -#include <math-tests-rounding.h> - -#undef ROUNDING_TESTS_double -#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) #define VEC_SUFF _vlen8 #define VEC_LEN 8 diff --git a/math/test-float-vlen16.h b/math/test-float-vlen16.h index 3cdd97d..a9353e3 100644 --- a/math/test-float-vlen16.h +++ b/math/test-float-vlen16.h @@ -19,10 +19,6 @@ #include "test-float.h" #include "test-math-no-inline.h" #include "test-math-vector.h" -#include <math-tests-rounding.h> - -#undef ROUNDING_TESTS_float -#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) #define VEC_SUFF _vlen16 #define VEC_LEN 16 diff --git a/math/test-float-vlen4.h b/math/test-float-vlen4.h index 76374b9..cd01d10 100644 --- a/math/test-float-vlen4.h +++ b/math/test-float-vlen4.h @@ -19,10 +19,6 @@ #include "test-float.h" #include "test-math-no-inline.h" #include "test-math-vector.h" -#include <math-tests-rounding.h> - -#undef ROUNDING_TESTS_float -#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) #define VEC_SUFF _vlen4 #define VEC_LEN 4 diff --git a/math/test-float-vlen8.h b/math/test-float-vlen8.h index b44d00e..1552781 100644 --- a/math/test-float-vlen8.h +++ b/math/test-float-vlen8.h @@ -19,10 +19,6 @@ #include "test-float.h" #include "test-math-no-inline.h" #include "test-math-vector.h" -#include <math-tests-rounding.h> - -#undef ROUNDING_TESTS_float -#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) #define VEC_SUFF _vlen8 #define VEC_LEN 8 |