diff options
Diffstat (limited to 'math/test-double-vlen4.h')
-rw-r--r-- | math/test-double-vlen4.h | 68 |
1 files changed, 5 insertions, 63 deletions
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; \ -} |