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] |
Hi, here is the last change regarding to libm-test.inc: addition of method for separation which exactly testing function needed to run with help of generated during make check header with series of conditional definitions. ChangeLog 2014-11-20 Andrew Senkevich <andrew.n.senkevich@gmail.com> * math/libm-test.inc (HAVE_VECTOR): New macros. * math/Makefile b/math/Makefile: Added generation of libm-have-vector-test.h. * math/gen-libm-have-vector-test.sh: Script generates series of macros for condition in testing functions. diff --git a/math/Makefile b/math/Makefile index 866bc0f..8a89308 100644 --- a/math/Makefile +++ b/math/Makefile @@ -102,7 +102,7 @@ libm-tests = test-float test-double $(test-longdouble-$(long-double-fcts)) \ libm-tests.o = $(addsuffix .o,$(libm-tests)) tests += $(libm-tests) -libm-tests-generated = libm-test-ulps.h libm-test.c +libm-tests-generated = libm-test-ulps.h libm-have-vector-test.h libm-test.c generated += $(libm-tests-generated) libm-test.stmp # This is needed for dependencies @@ -113,9 +113,10 @@ ulps-file = $(firstword $(wildcard $(sysdirs:%=%/libm-test-ulps))) $(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp $(objpfx)libm-test.stmp: $(ulps-file) libm-test.inc gen-libm-test.pl \ - auto-libm-test-out + gen-libm-have-vector-test.sh auto-libm-test-out $(make-target-directory) $(PERL) gen-libm-test.pl -u $< -o "$(objpfx)" + $(BASH) gen-libm-have-vector-test.sh > $(objpfx)libm-have-vector-test.h @echo > $@ $(objpfx)test-float.o: $(objpfx)libm-test.stmp diff --git a/math/gen-libm-have-vector-test.sh b/math/gen-libm-have-vector-test.sh new file mode 100755 index 0000000..95c7bef --- /dev/null +++ b/math/gen-libm-have-vector-test.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Copyright (C) 1999-2014 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/>. + +# Generate series of definitions used for vector math functions tests. +print_defs() +{ + echo "#if defined TEST_VECTOR_$1 && TEST_VECTOR_$1" + echo "# define HAVE_VECTOR_$1 1" + echo "# define VEC_PREFIX_$1 WRAPPER_NAME($1)" + echo "#else" + echo "# define HAVE_VECTOR_$1 0" + echo "# define VEC_PREFIX_$1 $1" + echo "#endif" + echo +} + +for func in $(grep ALL_RM_TEST libm-test.inc | grep -v define | sed -r "s/.*\(//; s/,.*//"); do + print_defs ${func} + print_defs ${func}f + print_defs ${func}l +done + +print_defs jn +print_defs jnf +print_defs jnl + +print_defs cexp +print_defs cexpf +print_defs cexpl + +print_defs tgamma +print_defs tgammaf +print_defs tgammal diff --git a/math/libm-test.inc b/math/libm-test.inc index 94931e2..d106c0b 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -1707,14 +1707,19 @@ struct test_fFF_11_data # define FUNC_TEST FUNC #endif +/* This generated header defines series of macros started with HAVE_VECTOR_ */ +#include "libm-have-vector-test.h" + +#define HAVE_VECTOR(func) __CONCAT (HAVE_VECTOR_,func) + #define STR_CONCAT(a, b, c) __STRING (a##b##c) #define STR_CON3(a, b, c) STR_CONCAT (a, b, c) /* Start and end the tests for a given function. */ -#define START(FUNC, SUFF, EXACT) \ +#define START(FUN, SUFF, EXACT) \ CHECK_ARCH_EXT \ - if (TEST_MATHVEC) return; \ - const char *this_func = STR_CON3 (VEC_PREFIX, FUNC, SUFF); \ + if (TEST_MATHVEC && !HAVE_VECTOR (FUNC (FUN))) return; \ + const char *this_func = STR_CON3 (VEC_PREFIX, FUN, SUFF); \ init_max_error (this_func, EXACT) #define END \ print_max_error (this_func) Attached the same. -- WBR, Andrew
Attachment:
libmvec_3_of_N.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |