Message ID | CAMXFM3vbyrZ-iUR5Kd7L8CMakpn+ObdTeKTYkfLj+Uzt3v5GEQ@mail.gmail.com |
---|---|
State | New |
Headers | show |
On Mon, 24 Nov 2014, Andrew Senkevich wrote: > @@ -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 I don't see anything bash-specific in this script, so $(SHELL) seems more appropriate. > +# 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 ${1}_VEC_SUFF WRAPPER_NAME($1)" Space before '(' in call to WRAPPER_NAME. > + echo "#else" > + echo "# define HAVE_VECTOR_$1 0" > + echo "# define ${1}_VEC_SUFF $1" > + echo "#endif" > + echo I think more explanation is needed in a comment about where the TEST_VECTOR_* macros, and WRAPPER_NAME, come from. Also, where is the ${1}_VEC_SUFF macro used? Again, it would be helpful if you had a git branch with the latest rebased version of this patch series, updated each time a patch changed, so we could see where this is heading. See <https://sourceware.org/glibc/wiki/GlibcGit>: branches under the <username>/ namespace can be freely created and deleted.
2014-11-26 19:53 GMT+03:00 Joseph Myers <joseph@codesourcery.com>:
> Also, where is the ${1}_VEC_SUFF macro used?
In individual tests, as result of FUNC_TEST unfolding to avoid
warnings / errors about undeclared functions.
--
WBR,
Andrew
On Wed, 26 Nov 2014, Andrew Senkevich wrote: > 2014-11-26 19:53 GMT+03:00 Joseph Myers <joseph@codesourcery.com>: > > Also, where is the ${1}_VEC_SUFF macro used? > > In individual tests, as result of FUNC_TEST unfolding to avoid > warnings / errors about undeclared functions. Where *in this patch series* is the relevant definition making use of ${1}_VEC_SUFF?
2014-11-26 20:30 GMT+03:00 Joseph Myers <joseph@codesourcery.com>: > Where *in this patch series* is the relevant definition making use of > ${1}_VEC_SUFF? In patch 6 which adds tests - https://sourceware.org/ml/libc-alpha/2014-11/msg00713.html (now contains inaccuracies). -- WBR, Andrew
2014-11-26 19:53 GMT+03:00 Joseph Myers <joseph@codesourcery.com>: > Again, it would be helpful if you had a git branch with the latest rebased > version of this patch series, updated each time a patch changed, so we > could see where this is heading. See > <https://sourceware.org/glibc/wiki/GlibcGit>: branches under the > <username>/ namespace can be freely created and deleted. Ok, I have applied for sourceware.org account and point you as person who approved request (in this form - https://sourceware.org/cgi-bin/pdw/ps_form.cgi). Will wait for account. -- WBR, Andrew
On Thu, 27 Nov 2014, Andrew Senkevich wrote: > 2014-11-26 19:53 GMT+03:00 Joseph Myers <joseph@codesourcery.com>: > > Again, it would be helpful if you had a git branch with the latest rebased > > version of this patch series, updated each time a patch changed, so we > > could see where this is heading. See > > <https://sourceware.org/glibc/wiki/GlibcGit>: branches under the > > <username>/ namespace can be freely created and deleted. > > Ok, I have applied for sourceware.org account and point you as person > who approved request (in this form - > https://sourceware.org/cgi-bin/pdw/ps_form.cgi). > Will wait for account. The copyright assignment paperwork still needs to be completed before you can get write access. I don't see you in copyright.list.
On Thu, Nov 27, 2014 at 02:20:47PM +0000, Joseph Myers wrote: >On Thu, 27 Nov 2014, Andrew Senkevich wrote: > >> 2014-11-26 19:53 GMT+03:00 Joseph Myers <joseph@codesourcery.com>: >> > Again, it would be helpful if you had a git branch with the latest rebased >> > version of this patch series, updated each time a patch changed, so we >> > could see where this is heading. See >> > <https://sourceware.org/glibc/wiki/GlibcGit>: branches under the >> > <username>/ namespace can be freely created and deleted. >> >> Ok, I have applied for sourceware.org account and point you as person >> who approved request (in this form - >> https://sourceware.org/cgi-bin/pdw/ps_form.cgi). >> Will wait for account. > >The copyright assignment paperwork still needs to be completed before you >can get write access. I don't see you in copyright.list. Ok. I've cancelled this request for now. Please reapply when the copyright arrangements are all set.
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 100644 index 0000000..aa88f10 --- /dev/null +++ b/math/gen-libm-have-vector-test.sh @@ -0,0 +1,44 @@ +#!/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 ${1}_VEC_SUFF WRAPPER_NAME($1)" + echo "#else" + echo "# define HAVE_VECTOR_$1 0" + echo "# define ${1}_VEC_SUFF $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 + +# When all functions will use ALL_RM_TEST instead of using START directly, +# this code can be removed. +for func in $(grep 'START.*;$' libm-test.inc | sed -r "s/.*\(//; s/,.*//"); do + print_defs ${func} + print_defs ${func}f + print_defs ${func}l +done diff --git a/math/libm-test.inc b/math/libm-test.inc index 4958385..7a91a2b 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -1698,11 +1698,16 @@ struct test_fFF_11_data #define STR_CONCAT(a, b, c) __STRING (a##b##c) #define STR_CON3(a, b, c) STR_CONCAT (a, b, c) +/* 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) + /* 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 (FUNC, SUFF, VEC_SUFF); \ + if (TEST_MATHVEC && !HAVE_VECTOR (FUNC (FUN))) return; \ + const char *this_func = STR_CON3 (FUN, SUFF, VEC_SUFF); \ init_max_error (this_func, EXACT) #define END \ print_max_error (this_func)