diff options
29 files changed, 492 insertions, 493 deletions
diff --git a/ChangeLog b/ChangeLog index 333b69048c..97fbe48627 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,226 @@ +2015-06-24 Joseph Myers <joseph@codesourcery.com> + + * math/test-double.h: New file. + * math/test-float.h: Likewise. + * math/test-ldouble.h: Likewise. + * math/test-math-inline.h: Likewise. + * math/test-math-no-inline.h: Likewise. + * math/test-math-scalar.h: Likewise. + * math/test-math-vector.h: Likewise. + * math/test-vec-loop.h: Remove file. Contents moved into + test-math-vector.h. + * math/libm-test.inc (MATHCONST): Do not document macro. + * math/test-double.c: Include test-double.h, test-math-no-inline.h + and test-math-scalar.h. + (FUNC): Remove macro. + (FUNC_TEST): Likewise. + (FLOAT): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_DOUBLE): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + * math/test-float.c: Include test-float.h, test-math-no-inline.h + and test-math-scalar.h. + (FUNC): Remove macro. + (FUNC_TEST): Likewise. + (FLOAT): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_FLOAT): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + * math/test-idouble.c: Include test-double.h, test-math-inline.h + and test-math-scalar.h. + (FUNC): Remove macro. + (FUNC_TEST): Likewise. + (FLOAT): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_DOUBLE): Likewise. + (TEST_MATHVEC): Likewise. + (TEST_INLINE): Likewise. + (__NO_MATH_INLINES): Likewise. + * math/test-ifloat.c: Include test-float.h, test-math-inline.h and + test-math-scalar.h. + (FUNC): Remove macro. + (FUNC_TEST): Likewise. + (FLOAT): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_FLOAT): Likewise. + (TEST_MATHVEC): Likewise. + (TEST_INLINE): Likewise. + (__NO_MATH_INLINES): Likewise. + * math/test-ildoubl.c: Include test-ldouble.h, test-math-inline.h + and test-math-scalar.h. + (FUNC): Remove macro. + (FUNC_TEST): Likewise. + (FLOAT): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_LDOUBLE): Likewise. + (TEST_MATHVEC): Likewise. + (TEST_INLINE): Likewise. + (__NO_MATH_INLINES): Likewise. + * math/test-ldouble.c: Include test-ldouble.h, + test-math-no-inline.h and test-math-scalar.h. + (FUNC): Remove macro. + (FUNC_TEST): Likewise. + (FLOAT): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_LDOUBLE): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + * math/test-double-vlen2.h: Include test-double.h, + test-math-no-inline.h and test-math-vector.h. + (FLOAT): Remove macro. + (FUNC): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_DOUBLE): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + (CNCT): Likewise. + (CONCAT): Likewise. + (WRAPPER_NAME): Likewise. + (WRAPPER_DECL): Likewise. + (WRAPPER_DECL_ff): Likewise. + (WRAPPER_DECL_fFF): Likewise. + (VECTOR_WRAPPER): Likewise. + (VECTOR_WRAPPER_ff): Likewise. + (VECTOR_WRAPPER_fFF): Likewise. + (VEC_LEN): New macro. + * math/test-double-vlen4.h: Include test-double.h, + test-math-no-inline.h and test-math-vector.h. + (FLOAT): Remove macro. + (FUNC): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_DOUBLE): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + (CNCT): Likewise. + (CONCAT): Likewise. + (WRAPPER_NAME): Likewise. + (WRAPPER_DECL): Likewise. + (WRAPPER_DECL_ff): Likewise. + (WRAPPER_DECL_fFF): Likewise. + (VECTOR_WRAPPER): Likewise. + (VECTOR_WRAPPER_ff): Likewise. + (VECTOR_WRAPPER_fFF): Likewise. + (VEC_LEN): New macro. + * math/test-double-vlen8.h: Include test-double.h, + test-math-no-inline.h and test-math-vector.h. + (FLOAT): Remove macro. + (FUNC): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_DOUBLE): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + (CNCT): Likewise. + (CONCAT): Likewise. + (WRAPPER_NAME): Likewise. + (WRAPPER_DECL): Likewise. + (WRAPPER_DECL_ff): Likewise. + (WRAPPER_DECL_fFF): Likewise. + (VECTOR_WRAPPER): Likewise. + (VECTOR_WRAPPER_ff): Likewise. + (VECTOR_WRAPPER_fFF): Likewise. + (VEC_LEN): New macro. + * math/test-float-vlen4.h: Include test-float.h, + test-math-no-inline.h and test-math-vector.h. + (FLOAT): Remove macro. + (FUNC): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_FLOAT): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + (CNCT): Likewise. + (CONCAT): Likewise. + (WRAPPER_NAME): Likewise. + (WRAPPER_DECL): Likewise. + (WRAPPER_DECL_ff): Likewise. + (WRAPPER_DECL_fFF): Likewise. + (VECTOR_WRAPPER): Likewise. + (VECTOR_WRAPPER_ff): Likewise. + (VECTOR_WRAPPER_fFF): Likewise. + (VEC_LEN): New macro. + * math/test-float-vlen8.h: Include test-float.h, + test-math-no-inline.h and test-math-vector.h. + (FLOAT): Remove macro. + (FUNC): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_FLOAT): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + (CNCT): Likewise. + (CONCAT): Likewise. + (WRAPPER_NAME): Likewise. + (WRAPPER_DECL): Likewise. + (WRAPPER_DECL_ff): Likewise. + (WRAPPER_DECL_fFF): Likewise. + (VECTOR_WRAPPER): Likewise. + (VECTOR_WRAPPER_ff): Likewise. + (VECTOR_WRAPPER_fFF): Likewise. + (VEC_LEN): New macro. + * math/test-float-vlen16.h: Include test-float.h, + test-math-no-inline.h and test-math-vector.h. + (FLOAT): Remove macro. + (FUNC): Likewise. + (MATHCONST): Likewise. + (PRINTF_EXPR): Likewise. + (PRINTF_XEXPR): Likewise. + (PRINTF_NEXPR): Likewise. + (TEST_FLOAT): Likewise. + (TEST_MATHVEC): Likewise. + (__NO_MATH_INLINES): Likewise. + (CNCT): Likewise. + (CONCAT): Likewise. + (WRAPPER_NAME): Likewise. + (WRAPPER_DECL): Likewise. + (WRAPPER_DECL_ff): Likewise. + (WRAPPER_DECL_fFF): Likewise. + (VECTOR_WRAPPER): Likewise. + (VECTOR_WRAPPER_ff): Likewise. + (VECTOR_WRAPPER_fFF): Likewise. + (VEC_LEN): New macro. + * sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: Do not include + test-vec-loop.h. + * sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: Likewise. + * sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: Likewise. + * sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: Likewise. + * sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c: Likewise. + * sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c: Likewise. + * sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c: Likewise. + * sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c: Likewise. + 2015-06-24 Roland McGrath <roland@hack.frob.com> * sysdeps/nacl/glob.c (getlogin_r): Macro renamed to ... diff --git a/math/libm-test.inc b/math/libm-test.inc index 49871618f0..da8f8caec4 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -24,7 +24,6 @@ Macros: FUNC(function): converts general function name (like cos) to name with correct suffix (e.g. cosl or cosf) - MATHCONST(x): like FUNC but for constants (e.g convert 0.0 to 0.0L) FLOAT: floating point type to test - TEST_MSG: informal message to be displayed CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat): diff --git a/math/test-double-vlen2.h b/math/test-double-vlen2.h index 3f117e510f..47d1fddc57 100644 --- a/math/test-double-vlen2.h +++ b/math/test-double-vlen2.h @@ -16,75 +16,17 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FLOAT double -#define FUNC(function) function +#include "test-double.h" +#include "test-math-no-inline.h" +#include "test-math-vector.h" + #define TEST_MSG "testing double vector math (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cdouble -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_DOUBLE 1 -#define TEST_MATHVEC 1 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #define EXCEPTION_TESTS_double 0 #define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) -#define CNCT(x, y) x ## y -#define CONCAT(a, b) CNCT (a, b) - #define VEC_SUFF _vlen2 -#define WRAPPER_NAME(function) CONCAT (function, VEC_SUFF) +#define VEC_LEN 2 #define FUNC_TEST(function) function ## _VEC_SUFF - -#define WRAPPER_DECL(function) extern FLOAT function (FLOAT); -#define WRAPPER_DECL_ff(function) extern FLOAT function (FLOAT, FLOAT); -#define WRAPPER_DECL_fFF(function) extern void function (FLOAT, FLOAT *, FLOAT *); - -// Wrapper from scalar to vector function with vector length 2. -#define VECTOR_WRAPPER(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE); \ -FLOAT scalar_func (FLOAT x) \ -{ \ - int i; \ - VEC_TYPE mx; \ - INIT_VEC_LOOP (mx, x, 2); \ - VEC_TYPE mr = vector_func (mx); \ - TEST_VEC_LOOP (mr, 2); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 2 argument function to vector one. -#define VECTOR_WRAPPER_ff(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE); \ -FLOAT scalar_func (FLOAT x, FLOAT y) \ -{ \ - int i; \ - VEC_TYPE mx, my; \ - INIT_VEC_LOOP (mx, x, 2); \ - INIT_VEC_LOOP (my, y, 2); \ - VEC_TYPE mr = vector_func (mx, my); \ - TEST_VEC_LOOP (mr, 2); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 3 argument function to vector one. -#define VECTOR_WRAPPER_fFF(scalar_func, vector_func) \ -extern void vector_func (VEC_TYPE, VEC_TYPE *, VEC_TYPE *); \ -void scalar_func (FLOAT x, FLOAT * r, FLOAT * r1) \ -{ \ - int i; \ - VEC_TYPE mx, mr, mr1; \ - INIT_VEC_LOOP (mx, x, 2); \ - vector_func (mx, &mr, &mr1); \ - TEST_VEC_LOOP (mr, 2); \ - TEST_VEC_LOOP (mr1, 2); \ - *r = (FLOAT) mr[0]; \ - *r1 = (FLOAT) mr1[0]; \ - return; \ -} diff --git a/math/test-double-vlen4.h b/math/test-double-vlen4.h index ffaba6916e..59a374c0ae 100644 --- a/math/test-double-vlen4.h +++ b/math/test-double-vlen4.h @@ -16,75 +16,17 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FLOAT double -#define FUNC(function) function +#include "test-double.h" +#include "test-math-no-inline.h" +#include "test-math-vector.h" + #define TEST_MSG "testing double vector math (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cdouble -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_DOUBLE 1 -#define TEST_MATHVEC 1 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #define EXCEPTION_TESTS_double 0 #define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) -#define CNCT(x, y) x ## y -#define CONCAT(a, b) CNCT (a, b) - #define VEC_SUFF _vlen4 -#define WRAPPER_NAME(function) CONCAT (function, VEC_SUFF) +#define VEC_LEN 4 #define FUNC_TEST(function) function ## _VEC_SUFF - -#define WRAPPER_DECL(function) extern FLOAT function (FLOAT); -#define WRAPPER_DECL_ff(function) extern FLOAT function (FLOAT, FLOAT); -#define WRAPPER_DECL_fFF(function) extern void function (FLOAT, FLOAT *, FLOAT *); - -// Wrapper from scalar to vector function with vector length 4. -#define VECTOR_WRAPPER(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE); \ -FLOAT scalar_func (FLOAT x) \ -{ \ - int i; \ - VEC_TYPE mx; \ - INIT_VEC_LOOP (mx, x, 4); \ - VEC_TYPE mr = vector_func (mx); \ - TEST_VEC_LOOP (mr, 4); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 2 argument function to vector one. -#define VECTOR_WRAPPER_ff(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE); \ -FLOAT scalar_func (FLOAT x, FLOAT y) \ -{ \ - int i; \ - VEC_TYPE mx, my; \ - INIT_VEC_LOOP (mx, x, 4); \ - INIT_VEC_LOOP (my, y, 4); \ - VEC_TYPE mr = vector_func (mx, my); \ - TEST_VEC_LOOP (mr, 4); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 3 argument function to vector one. -#define VECTOR_WRAPPER_fFF(scalar_func, vector_func) \ -extern void vector_func (VEC_TYPE, VEC_TYPE *, VEC_TYPE *); \ -void scalar_func (FLOAT x, FLOAT * r, FLOAT * r1) \ -{ \ - int i; \ - VEC_TYPE mx, mr, mr1; \ - INIT_VEC_LOOP (mx, x, 4); \ - vector_func (mx, &mr, &mr1); \ - TEST_VEC_LOOP (mr, 4); \ - TEST_VEC_LOOP (mr1, 4); \ - *r = (FLOAT) mr[0]; \ - *r1 = (FLOAT) mr1[0]; \ - return; \ -} diff --git a/math/test-double-vlen8.h b/math/test-double-vlen8.h index bdfccbb4ff..a780aa6658 100644 --- a/math/test-double-vlen8.h +++ b/math/test-double-vlen8.h @@ -16,75 +16,17 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FLOAT double -#define FUNC(function) function +#include "test-double.h" +#include "test-math-no-inline.h" +#include "test-math-vector.h" + #define TEST_MSG "testing double vector math (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cdouble -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_DOUBLE 1 -#define TEST_MATHVEC 1 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #define EXCEPTION_TESTS_double 0 #define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) -#define CNCT(x, y) x ## y -#define CONCAT(a, b) CNCT (a, b) - #define VEC_SUFF _vlen8 -#define WRAPPER_NAME(function) CONCAT (function, VEC_SUFF) +#define VEC_LEN 8 #define FUNC_TEST(function) function ## _VEC_SUFF - -#define WRAPPER_DECL(function) extern FLOAT function (FLOAT); -#define WRAPPER_DECL_ff(function) extern FLOAT function (FLOAT, FLOAT); -#define WRAPPER_DECL_fFF(function) extern void function (FLOAT, FLOAT *, FLOAT *); - -// Wrapper from scalar to vector function with vector length 8. -#define VECTOR_WRAPPER(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE); \ -FLOAT scalar_func (FLOAT x) \ -{ \ - int i; \ - VEC_TYPE mx; \ - INIT_VEC_LOOP (mx, x, 8); \ - VEC_TYPE mr = vector_func (mx); \ - TEST_VEC_LOOP (mr, 8); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 2 argument function to vector one. -#define VECTOR_WRAPPER_ff(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE); \ -FLOAT scalar_func (FLOAT x, FLOAT y) \ -{ \ - int i; \ - VEC_TYPE mx, my; \ - INIT_VEC_LOOP (mx, x, 8); \ - INIT_VEC_LOOP (my, y, 8); \ - VEC_TYPE mr = vector_func (mx, my); \ - TEST_VEC_LOOP (mr, 8); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 3 argument function to vector one. -#define VECTOR_WRAPPER_fFF(scalar_func, vector_func) \ -extern void vector_func (VEC_TYPE, VEC_TYPE *, VEC_TYPE *); \ -void scalar_func (FLOAT x, FLOAT * r, FLOAT * r1) \ -{ \ - int i; \ - VEC_TYPE mx, mr, mr1; \ - INIT_VEC_LOOP (mx, x, 8); \ - vector_func (mx, &mr, &mr1); \ - TEST_VEC_LOOP (mr, 8); \ - TEST_VEC_LOOP (mr1, 8); \ - *r = (FLOAT) mr[0]; \ - *r1 = (FLOAT) mr1[0]; \ - return; \ -} diff --git a/math/test-double.c b/math/test-double.c index 6c1c11c923..b62e433f17 100644 --- a/math/test-double.c +++ b/math/test-double.c @@ -16,20 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FUNC(function) function -#define FUNC_TEST(function) FUNC (function) -#define FLOAT double +#include "test-double.h" +#include "test-math-no-inline.h" +#include "test-math-scalar.h" + #define TEST_MSG "testing double (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cdouble -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_DOUBLE 1 -#define TEST_MATHVEC 0 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #include "libm-test.c" diff --git a/math/test-double.h b/math/test-double.h new file mode 100644 index 0000000000..3f2c0082a2 --- /dev/null +++ b/math/test-double.h @@ -0,0 +1,24 @@ +/* Common definitions for libm tests for double. + Copyright (C) 1997-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define FUNC(function) function +#define FLOAT double +#define PRINTF_EXPR "e" +#define PRINTF_XEXPR "a" +#define PRINTF_NEXPR "f" +#define TEST_DOUBLE 1 diff --git a/math/test-float-vlen16.h b/math/test-float-vlen16.h index b1890f3740..c9c7770315 100644 --- a/math/test-float-vlen16.h +++ b/math/test-float-vlen16.h @@ -16,75 +16,17 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FLOAT float -#define FUNC(function) function ## f +#include "test-float.h" +#include "test-math-no-inline.h" +#include "test-math-vector.h" + #define TEST_MSG "testing float vector math (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cfloat -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_FLOAT 1 -#define TEST_MATHVEC 1 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #define EXCEPTION_TESTS_float 0 #define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) -#define CNCT(x, y) x ## y -#define CONCAT(a, b) CNCT (a, b) - #define VEC_SUFF _vlen16 -#define WRAPPER_NAME(function) CONCAT (function, VEC_SUFF) +#define VEC_LEN 16 #define FUNC_TEST(function) function ## f ## _VEC_SUFF - -#define WRAPPER_DECL(func) extern FLOAT func (FLOAT x); -#define WRAPPER_DECL_ff(func) extern FLOAT func (FLOAT x, FLOAT y); -#define WRAPPER_DECL_fFF(function) extern void function (FLOAT, FLOAT *, FLOAT *); - -// Wrapper from scalar to vector function with vector length 16. -#define VECTOR_WRAPPER(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE); \ -FLOAT scalar_func (FLOAT x) \ -{ \ - int i; \ - VEC_TYPE mx; \ - INIT_VEC_LOOP (mx, x, 16); \ - VEC_TYPE mr = vector_func (mx); \ - TEST_VEC_LOOP (mr, 16); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 2 argument function to vector one. -#define VECTOR_WRAPPER_ff(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE); \ -FLOAT scalar_func (FLOAT x, FLOAT y) \ -{ \ - int i; \ - VEC_TYPE mx, my; \ - INIT_VEC_LOOP (mx, x, 16); \ - INIT_VEC_LOOP (my, y, 16); \ - VEC_TYPE mr = vector_func (mx, my); \ - TEST_VEC_LOOP (mr, 16); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 3 argument function to vector one. -#define VECTOR_WRAPPER_fFF(scalar_func, vector_func) \ -extern void vector_func (VEC_TYPE, VEC_TYPE *, VEC_TYPE *); \ -void scalar_func (FLOAT x, FLOAT * r, FLOAT * r1) \ -{ \ - int i; \ - VEC_TYPE mx, mr, mr1; \ - INIT_VEC_LOOP (mx, x, 16); \ - vector_func (mx, &mr, &mr1); \ - TEST_VEC_LOOP (mr, 16); \ - TEST_VEC_LOOP (mr1, 16); \ - *r = (FLOAT) mr[0]; \ - *r1 = (FLOAT) mr1[0]; \ - return; \ -} diff --git a/math/test-float-vlen4.h b/math/test-float-vlen4.h index 213ae78e71..463e277d36 100644 --- a/math/test-float-vlen4.h +++ b/math/test-float-vlen4.h @@ -16,75 +16,17 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FLOAT float -#define FUNC(function) function ## f +#include "test-float.h" +#include "test-math-no-inline.h" +#include "test-math-vector.h" + #define TEST_MSG "testing float vector math (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cfloat -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_FLOAT 1 -#define TEST_MATHVEC 1 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #define EXCEPTION_TESTS_float 0 #define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) -#define CNCT(x, y) x ## y -#define CONCAT(a, b) CNCT (a, b) - #define VEC_SUFF _vlen4 -#define WRAPPER_NAME(function) CONCAT (function, VEC_SUFF) +#define VEC_LEN 4 #define FUNC_TEST(function) function ## f ## _VEC_SUFF - -#define WRAPPER_DECL(function) extern FLOAT function (FLOAT); -#define WRAPPER_DECL_ff(function) extern FLOAT function (FLOAT, FLOAT); -#define WRAPPER_DECL_fFF(function) extern void function (FLOAT, FLOAT *, FLOAT *); - -// Wrapper from scalar to vector function with vector length 4. -#define VECTOR_WRAPPER(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE); \ -FLOAT scalar_func (FLOAT x) \ -{ \ - int i; \ - VEC_TYPE mx; \ - INIT_VEC_LOOP (mx, x, 4); \ - VEC_TYPE mr = vector_func (mx); \ - TEST_VEC_LOOP (mr, 4); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 2 argument function to vector one. -#define VECTOR_WRAPPER_ff(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE); \ -FLOAT scalar_func (FLOAT x, FLOAT y) \ -{ \ - int i; \ - VEC_TYPE mx, my; \ - INIT_VEC_LOOP (mx, x, 4); \ - INIT_VEC_LOOP (my, y, 4); \ - VEC_TYPE mr = vector_func (mx, my); \ - TEST_VEC_LOOP (mr, 4); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 3 argument function to vector one. -#define VECTOR_WRAPPER_fFF(scalar_func, vector_func) \ -extern void vector_func (VEC_TYPE, VEC_TYPE *, VEC_TYPE *); \ -void scalar_func (FLOAT x, FLOAT * r, FLOAT * r1) \ -{ \ - int i; \ - VEC_TYPE mx, mr, mr1; \ - INIT_VEC_LOOP (mx, x, 4); \ - vector_func (mx, &mr, &mr1); \ - TEST_VEC_LOOP (mr, 4); \ - TEST_VEC_LOOP (mr1, 4); \ - *r = (FLOAT) mr[0]; \ - *r1 = (FLOAT) mr1[0]; \ - return; \ -} diff --git a/math/test-float-vlen8.h b/math/test-float-vlen8.h index dd2fb287ad..6dd6a9f5e0 100644 --- a/math/test-float-vlen8.h +++ b/math/test-float-vlen8.h @@ -16,75 +16,17 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FLOAT float -#define FUNC(function) function ## f +#include "test-float.h" +#include "test-math-no-inline.h" +#include "test-math-vector.h" + #define TEST_MSG "testing float vector math (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cfloat -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_FLOAT 1 -#define TEST_MATHVEC 1 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #define EXCEPTION_TESTS_float 0 #define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) -#define CNCT(x, y) x ## y -#define CONCAT(a, b) CNCT (a, b) - #define VEC_SUFF _vlen8 -#define WRAPPER_NAME(function) CONCAT (function, VEC_SUFF) +#define VEC_LEN 8 #define FUNC_TEST(function) function ## f ## _VEC_SUFF - -#define WRAPPER_DECL(function) extern FLOAT function (FLOAT); -#define WRAPPER_DECL_ff(function) extern FLOAT function (FLOAT, FLOAT); -#define WRAPPER_DECL_fFF(function) extern void function (FLOAT, FLOAT *, FLOAT *); - -// Wrapper from scalar to vector function with vector length 8. -#define VECTOR_WRAPPER(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE); \ -FLOAT scalar_func (FLOAT x) \ -{ \ - int i; \ - VEC_TYPE mx; \ - INIT_VEC_LOOP (mx, x, 8); \ - VEC_TYPE mr = vector_func (mx); \ - TEST_VEC_LOOP (mr, 8); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 2 argument function to vector one. -#define VECTOR_WRAPPER_ff(scalar_func, vector_func) \ -extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE); \ -FLOAT scalar_func (FLOAT x, FLOAT y) \ -{ \ - int i; \ - VEC_TYPE mx, my; \ - INIT_VEC_LOOP (mx, x, 8); \ - INIT_VEC_LOOP (my, y, 8); \ - VEC_TYPE mr = vector_func (mx, my); \ - TEST_VEC_LOOP (mr, 8); \ - return ((FLOAT) mr[0]); \ -} - -// Wrapper from scalar 3 argument function to vector one. -#define VECTOR_WRAPPER_fFF(scalar_func, vector_func) \ -extern void vector_func (VEC_TYPE, VEC_TYPE *, VEC_TYPE *); \ -void scalar_func (FLOAT x, FLOAT * r, FLOAT * r1) \ -{ \ - int i; \ - VEC_TYPE mx, mr, mr1; \ - INIT_VEC_LOOP (mx, x, 8); \ - vector_func (mx, &mr, &mr1); \ - TEST_VEC_LOOP (mr, 8); \ - TEST_VEC_LOOP (mr1, 8); \ - *r = (FLOAT) mr[0]; \ - *r1 = (FLOAT) mr1[0]; \ - return; \ -} diff --git a/math/test-float.c b/math/test-float.c index 07dc8eacd6..b6a41c0e93 100644 --- a/math/test-float.c +++ b/math/test-float.c @@ -16,20 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FUNC(function) function ## f -#define FUNC_TEST(function) FUNC (function) -#define FLOAT float +#include "test-float.h" +#include "test-math-no-inline.h" +#include "test-math-scalar.h" + #define TEST_MSG "testing float (without inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cfloat -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_FLOAT 1 -#define TEST_MATHVEC 0 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #include "libm-test.c" diff --git a/math/test-float.h b/math/test-float.h new file mode 100644 index 0000000000..7b00cb1216 --- /dev/null +++ b/math/test-float.h @@ -0,0 +1,24 @@ +/* Common definitions for libm tests for float. + Copyright (C) 1997-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define FUNC(function) function ## f +#define FLOAT float +#define PRINTF_EXPR "e" +#define PRINTF_XEXPR "a" +#define PRINTF_NEXPR "f" +#define TEST_FLOAT 1 diff --git a/math/test-idouble.c b/math/test-idouble.c index bb73f9c7c2..48e6965ba3 100644 --- a/math/test-idouble.c +++ b/math/test-idouble.c @@ -16,21 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FUNC(function) function -#define FUNC_TEST(function) FUNC (function) -#define FLOAT double +#include "test-double.h" +#include "test-math-inline.h" +#include "test-math-scalar.h" + #define TEST_MSG "testing double (inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cinlinedouble -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_DOUBLE 1 -#define TEST_MATHVEC 0 -#define TEST_INLINE - -#ifdef __NO_MATH_INLINES -# undef __NO_MATH_INLINES -#endif #include "libm-test.c" diff --git a/math/test-ifloat.c b/math/test-ifloat.c index 74e8e4b1b8..4b1bc405b8 100644 --- a/math/test-ifloat.c +++ b/math/test-ifloat.c @@ -16,21 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FUNC(function) function ## f -#define FUNC_TEST(function) FUNC (function) -#define FLOAT float +#include "test-float.h" +#include "test-math-inline.h" +#include "test-math-scalar.h" + #define TEST_MSG "testing float (inline functions)\n" -#define MATHCONST(x) x #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cinlinefloat -#define PRINTF_EXPR "e" -#define PRINTF_XEXPR "a" -#define PRINTF_NEXPR "f" -#define TEST_FLOAT 1 -#define TEST_MATHVEC 0 -#define TEST_INLINE 1 - -#ifdef __NO_MATH_INLINES -# undef __NO_MATH_INLINES -#endif #include "libm-test.c" diff --git a/math/test-ildoubl.c b/math/test-ildoubl.c index f90a9baff0..847d8abfaf 100644 --- a/math/test-ildoubl.c +++ b/math/test-ildoubl.c @@ -16,21 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FUNC(function) function##l -#define FUNC_TEST(function) FUNC (function) -#define FLOAT long double +#include "test-ldouble.h" +#include "test-math-inline.h" +#include "test-math-scalar.h" + #define TEST_MSG "testing long double (inline functions)\n" -#define MATHCONST(x) x##L #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Cinlinelongdouble -#define PRINTF_EXPR "Le" -#define PRINTF_XEXPR "La" -#define PRINTF_NEXPR "Lf" -#define TEST_INLINE -#define TEST_LDOUBLE 1 -#define TEST_MATHVEC 0 - -#ifdef __NO_MATH_INLINES -# undef __NO_MATH_INLINES -#endif #include "libm-test.c" diff --git a/math/test-ldouble.c b/math/test-ldouble.c index 97effb69e1..6820c5d1fe 100644 --- a/math/test-ldouble.c +++ b/math/test-ldouble.c @@ -16,20 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#define FUNC(function) function##l -#define FUNC_TEST(function) FUNC (function) -#define FLOAT long double +#include "test-ldouble.h" +#include "test-math-no-inline.h" +#include "test-math-scalar.h" + #define TEST_MSG "testing long double (without inline functions)\n" -#define MATHCONST(x) x##L #define CHOOSE(Clongdouble,Cdouble,Cfloat,Cinlinelongdouble,Cinlinedouble,Cinlinefloat) Clongdouble -#define PRINTF_EXPR "Le" -#define PRINTF_XEXPR "La" -#define PRINTF_NEXPR "Lf" -#define TEST_LDOUBLE 1 -#define TEST_MATHVEC 0 - -#ifndef __NO_MATH_INLINES -# define __NO_MATH_INLINES -#endif #include "libm-test.c" diff --git a/math/test-ldouble.h b/math/test-ldouble.h new file mode 100644 index 0000000000..e42b2bd2f2 --- /dev/null +++ b/math/test-ldouble.h @@ -0,0 +1,24 @@ +/* Common definitions for libm tests for long double. + Copyright (C) 1997-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define FUNC(function) function##l +#define FLOAT long double +#define PRINTF_EXPR "Le" +#define PRINTF_XEXPR "La" +#define PRINTF_NEXPR "Lf" +#define TEST_LDOUBLE 1 diff --git a/math/test-vec-loop.h b/math/test-math-inline.h index 66d7692c22..d778cc74d9 100644 --- a/math/test-vec-loop.h +++ b/math/test-math-inline.h @@ -1,5 +1,5 @@ -/* Loop macro used in vector math functions tests. - Copyright (C) 2014-2015 Free Software Foundation, Inc. +/* Common definitions for libm tests for inline functions. + Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,27 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -/* This macro is used in VECTOR_WRAPPER macros for vector tests. */ -#define TEST_VEC_LOOP(vec, len) \ - do \ - { \ - for (i = 1; i < len; i++) \ - { \ - if ((FLOAT) vec[0] != (FLOAT) vec[i]) \ - { \ - vec[0] = (FLOAT) vec[0] + 0.1; \ - break; \ - } \ - } \ - } \ - while (0) +#define TEST_INLINE -#define INIT_VEC_LOOP(vec, val, len) \ - do \ - { \ - for (i = 0; i < len; i++) \ - { \ - vec[i] = val; \ - } \ - } \ - while (0) +#ifdef __NO_MATH_INLINES +# undef __NO_MATH_INLINES +#endif diff --git a/math/test-math-no-inline.h b/math/test-math-no-inline.h new file mode 100644 index 0000000000..ad765da0ae --- /dev/null +++ b/math/test-math-no-inline.h @@ -0,0 +1,21 @@ +/* Common definitions for libm tests for non-inline functions. + Copyright (C) 1997-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef __NO_MATH_INLINES +# define __NO_MATH_INLINES +#endif diff --git a/math/test-math-scalar.h b/math/test-math-scalar.h new file mode 100644 index 0000000000..1e4805aad5 --- /dev/null +++ b/math/test-math-scalar.h @@ -0,0 +1,20 @@ +/* Common definitions for libm tests for scalar functions. + Copyright (C) 1997-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define FUNC_TEST(function) FUNC (function) +#define TEST_MATHVEC 0 diff --git a/math/test-math-vector.h b/math/test-math-vector.h new file mode 100644 index 0000000000..1b74841fe4 --- /dev/null +++ b/math/test-math-vector.h @@ -0,0 +1,96 @@ +/* Common definitions for libm tests for vector functions. + Copyright (C) 2014-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define TEST_MATHVEC 1 + +#define CNCT(x, y) x ## y +#define CONCAT(a, b) CNCT (a, b) + +#define WRAPPER_NAME(function) CONCAT (function, VEC_SUFF) + +/* This macro is used in VECTOR_WRAPPER macros for vector tests. */ +#define TEST_VEC_LOOP(vec, len) \ + do \ + { \ + for (i = 1; i < len; i++) \ + { \ + if ((FLOAT) vec[0] != (FLOAT) vec[i]) \ + { \ + vec[0] = (FLOAT) vec[0] + 0.1; \ + break; \ + } \ + } \ + } \ + while (0) + +#define INIT_VEC_LOOP(vec, val, len) \ + do \ + { \ + for (i = 0; i < len; i++) \ + { \ + vec[i] = val; \ + } \ + } \ + while (0) + +#define WRAPPER_DECL(function) extern FLOAT function (FLOAT); +#define WRAPPER_DECL_ff(function) extern FLOAT function (FLOAT, FLOAT); +#define WRAPPER_DECL_fFF(function) extern void function (FLOAT, FLOAT *, FLOAT *); + +/* Wrapper from scalar to vector function. */ +#define VECTOR_WRAPPER(scalar_func, vector_func) \ +extern VEC_TYPE vector_func (VEC_TYPE); \ +FLOAT scalar_func (FLOAT x) \ +{ \ + int i; \ + VEC_TYPE mx; \ + INIT_VEC_LOOP (mx, x, VEC_LEN); \ + VEC_TYPE mr = vector_func (mx); \ + TEST_VEC_LOOP (mr, VEC_LEN); \ + return ((FLOAT) mr[0]); \ +} + +/* Wrapper from scalar 2 argument function to vector one. */ +#define VECTOR_WRAPPER_ff(scalar_func, vector_func) \ +extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE); \ +FLOAT scalar_func (FLOAT x, FLOAT y) \ +{ \ + int i; \ + VEC_TYPE mx, my; \ + INIT_VEC_LOOP (mx, x, VEC_LEN); \ + INIT_VEC_LOOP (my, y, VEC_LEN); \ + VEC_TYPE mr = vector_func (mx, my); \ + TEST_VEC_LOOP (mr, VEC_LEN); \ + return ((FLOAT) mr[0]); \ +} + +/* Wrapper from scalar 3 argument function to vector one. */ +#define VECTOR_WRAPPER_fFF(scalar_func, vector_func) \ +extern void vector_func (VEC_TYPE, VEC_TYPE *, VEC_TYPE *); \ +void scalar_func (FLOAT x, FLOAT * r, FLOAT * r1) \ +{ \ + int i; \ + VEC_TYPE mx, mr, mr1; \ + INIT_VEC_LOOP (mx, x, VEC_LEN); \ + vector_func (mx, &mr, &mr1); \ + TEST_VEC_LOOP (mr, VEC_LEN); \ + TEST_VEC_LOOP (mr1, VEC_LEN); \ + *r = (FLOAT) mr[0]; \ + *r1 = (FLOAT) mr1[0]; \ + return; \ +} diff --git a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c index 806bd99a5d..4e764f2475 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-double-vlen2.h" -#include "test-vec-loop.h" #include <immintrin.h> #define VEC_TYPE __m128d diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c index a12b897485..bc2fd16c5a 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-double-vlen4.h" -#include "test-vec-loop.h" #include <immintrin.h> #undef VEC_SUFF diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c index 7525af7f90..a711c9e1c3 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-double-vlen4.h" -#include "test-vec-loop.h" #include <immintrin.h> #define VEC_TYPE __m256d diff --git a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c index fcc4fa45a5..942c42b83b 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-double-vlen8.h" -#include "test-vec-loop.h" #include <immintrin.h> #define VEC_TYPE __m512d diff --git a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c index 6cc6008301..bc98e78ff0 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-float-vlen16.h" -#include "test-vec-loop.h" #include <immintrin.h> #define VEC_TYPE __m512 diff --git a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c index ae12a108fc..39254efed4 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-float-vlen4.h" -#include "test-vec-loop.h" #include <immintrin.h> #define VEC_TYPE __m128 diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c index f0c7d4a55a..6bd0d50779 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-float-vlen8.h" -#include "test-vec-loop.h" #include <immintrin.h> #undef VEC_SUFF diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c index 6b267de00c..2fec906de0 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c @@ -17,7 +17,6 @@ <http://www.gnu.org/licenses/>. */ #include "test-float-vlen8.h" -#include "test-vec-loop.h" #include <immintrin.h> #define VEC_TYPE __m256 |