Age | Commit message (Collapse) | Author |
|
Continuing the process of splitting up libm tests into more reasonably
sized units, this patch splits libm-test.inc into 121 separate
libm-test-<function>.inc files, one per array of test data. (There
are 126 libm *_test functions, but five of those are for functions
that are aliases for test purposes and so share arrays of test data.)
In the present patch, the 121 files get processed separately by
gen-libm-test.pl, each using only the auto-libm-test-out-<function>
file that is relevant (/dev/null for functions not using
auto-libm-test-* at all). This effectively eliminates the
serialization on running gen-libm-test.pl. However, the resulting .c
files still all get #included together, so compiling the limited
number of libm tests using libm-test.inc may still act as a
serialization point (the compilations still all have 40 MB of code to
process). libm-test.inc doesn't actually have anything in it any more
that needs gen-libm-test.pl processing, but is left as a .inc file
that gets processed to produce a .c file, rather than being renamed,
since the intent of this patch is as an intermediate step before
libm-test.inc gets removed and tests get compiled separately for each
function being tested.
Tested for x86_64.
* math/libm-test.inc: Move all tests of individual functions to
libm-test-*.inc and #include libm-test-*.c files.
(acos_test_data): Remove.
(acos_test): Likewise.
(acosh_test_data): Likewise.
(acosh_test): Likewise.
(asin_test_data): Likewise.
(asin_test): Likewise.
(asinh_test_data): Likewise.
(asinh_test): Likewise.
(atan_test_data): Likewise.
(atan_test): Likewise.
(atanh_test_data): Likewise.
(atanh_test): Likewise.
(atan2_test_data): Likewise.
(atan2_test): Likewise.
(cabs_test_data): Likewise.
(cabs_test): Likewise.
(cacos_test_data): Likewise.
(cacos_test): Likewise.
(cacosh_test_data): Likewise.
(cacosh_test): Likewise.
(canonicalize_test_data): Likewise.
(canonicalize_test): Likewise.
(carg_test_data): Likewise.
(carg_test): Likewise.
(casin_test_data): Likewise.
(casin_test): Likewise.
(casinh_test_data): Likewise.
(casinh_test): Likewise.
(catan_test_data): Likewise.
(catan_test): Likewise.
(catanh_test_data): Likewise.
(catanh_test): Likewise.
(cbrt_test_data): Likewise.
(cbrt_test): Likewise.
(ccos_test_data): Likewise.
(ccos_test): Likewise.
(ccosh_test_data): Likewise.
(ccosh_test): Likewise.
(ceil_test_data): Likewise.
(ceil_test): Likewise.
(cexp_test_data): Likewise.
(cexp_test): Likewise.
(cimag_test_data): Likewise.
(cimag_test): Likewise.
(clog_test_data): Likewise.
(clog_test): Likewise.
(clog10_test_data): Likewise.
(clog10_test): Likewise.
(conj_test_data): Likewise.
(conj_test): Likewise.
(copysign_test_data): Likewise.
(copysign_test): Likewise.
(cos_test_data): Likewise.
(cos_test): Likewise.
(cosh_test_data): Likewise.
(cosh_test): Likewise.
(cpow_test_data): Likewise.
(cpow_test): Likewise.
(cproj_test_data): Likewise.
(cproj_test): Likewise.
(creal_test_data): Likewise.
(creal_test): Likewise.
(csin_test_data): Likewise.
(csin_test): Likewise.
(csinh_test_data): Likewise.
(csinh_test): Likewise.
(csqrt_test_data): Likewise.
(csqrt_test): Likewise.
(ctan_test_data): Likewise.
(ctan_test): Likewise.
(ctanh_test_data): Likewise.
(ctanh_test): Likewise.
(erf_test_data): Likewise.
(erf_test): Likewise.
(erfc_test_data): Likewise.
(erfc_test): Likewise.
(exp_test_data): Likewise.
(exp_test): Likewise.
(exp10_test_data): Likewise.
(exp10_test): Likewise.
(pow10_test): Likewise.
(exp2_test_data): Likewise.
(exp2_test): Likewise.
(expm1_test_data): Likewise.
(expm1_test): Likewise.
(fabs_test_data): Likewise.
(fabs_test): Likewise.
(fdim_test_data): Likewise.
(fdim_test): Likewise.
(floor_test_data): Likewise.
(floor_test): Likewise.
(fma_test_data): Likewise.
(fma_test): Likewise.
(fmax_test_data): Likewise.
(fmax_test): Likewise.
(fmaxmag_test_data): Likewise.
(fmaxmag_test): Likewise.
(fmin_test_data): Likewise.
(fmin_test): Likewise.
(fminmag_test_data): Likewise.
(fminmag_test): Likewise.
(fmod_test_data): Likewise.
(fmod_test): Likewise.
(fpclassify_test_data): Likewise.
(fpclassify_test): Likewise.
(frexp_test_data): Likewise.
(frexp_test): Likewise.
(fromfp_test_data): Likewise.
(fromfp_test): Likewise.
(fromfpx_test_data): Likewise.
(fromfpx_test): Likewise.
(getpayload_test_data): Likewise.
(getpayload_test): Likewise.
(hypot_test_data): Likewise.
(hypot_test): Likewise.
(ilogb_test_data): Likewise.
(ilogb_test): Likewise.
(iscanonical_test_data): Likewise.
(iscanonical_test): Likewise.
(iseqsig_test_data): Likewise.
(iseqsig_test): Likewise.
(isfinite_test_data): Likewise.
(isfinite_test): Likewise.
(finite_test): Likewise.
(isgreater_test_data): Likewise.
(isgreater_test): Likewise.
(isgreaterequal_test_data): Likewise.
(isgreaterequal_test): Likewise.
(isinf_test_data): Likewise.
(isinf_test): Likewise.
(isless_test_data): Likewise.
(isless_test): Likewise.
(islessequal_test_data): Likewise.
(islessequal_test): Likewise.
(islessgreater_test_data): Likewise.
(islessgreater_test): Likewise.
(isnan_test_data): Likewise.
(isnan_test): Likewise.
(isnormal_test_data): Likewise.
(isnormal_test): Likewise.
(issignaling_test_data): Likewise.
(issignaling_test): Likewise.
(issubnormal_test_data): Likewise.
(issubnormal_test): Likewise.
(isunordered_test_data): Likewise.
(isunordered_test): Likewise.
(iszero_test_data): Likewise.
(iszero_test): Likewise.
(j0_test_data): Likewise.
(j0_test): Likewise.
(j1_test_data): Likewise.
(j1_test): Likewise.
(jn_test_data): Likewise.
(jn_test): Likewise.
(lgamma_test_data): Likewise.
(lgamma_test): Likewise.
(gamma_test): Likewise.
(llogb_test_data): Likewise.
(llogb_test): Likewise.
(lrint_test_data): Likewise.
(lrint_test): Likewise.
(llrint_test_data): Likewise.
(llrint_test): Likewise.
(log_test_data): Likewise.
(log_test): Likewise.
(log10_test_data): Likewise.
(log10_test): Likewise.
(log1p_test_data): Likewise.
(log1p_test): Likewise.
(log2_test_data): Likewise.
(log2_test): Likewise.
(logb_test_data): Likewise.
(logb_test): Likewise.
(lround_test_data): Likewise.
(lround_test): Likewise.
(llround_test_data): Likewise.
(llround_test): Likewise.
(modf_test_data): Likewise.
(modf_test): Likewise.
(nearbyint_test_data): Likewise.
(nearbyint_test): Likewise.
(nextafter_test_data): Likewise.
(nextafter_test): Likewise.
(nextup_test_data): Likewise.
(nextup_test): Likewise.
(nextdown_test_data): Likewise.
(nextdown_test): Likewise.
(nexttoward_test_data): Likewise.
(nexttoward_test): Likewise.
(pow_test_data): Likewise.
(pow_test): Likewise.
(remainder_test_data): Likewise.
(remainder_test): Likewise.
(drem_test): Likewise.
(remquo_test_data): Likewise.
(remquo_test): Likewise.
(rint_test_data): Likewise.
(rint_test): Likewise.
(round_test_data): Likewise.
(round_test): Likewise.
(roundeven_test_data): Likewise.
(roundeven_test): Likewise.
(scalb_test_data): Likewise.
(scalb_test): Likewise.
(scalbn_test_data): Likewise.
(scalbn_test): Likewise.
(ldexp_test): Likewise.
(scalbln_test_data): Likewise.
(scalbln_test): Likewise.
(setpayload_test_data): Likewise.
(setpayload_test): Likewise.
(setpayloadsig_test_data): Likewise.
(setpayloadsig_test): Likewise.
(signbit_test_data): Likewise.
(signbit_test): Likewise.
(sin_test_data): Likewise.
(sin_test): Likewise.
(sincos_test_data): Likewise.
(sincos_test): Likewise.
(sinh_test_data): Likewise.
(sinh_test): Likewise.
(sqrt_test_data): Likewise.
(sqrt_test): Likewise.
(tan_test_data): Likewise.
(tan_test): Likewise.
(tanh_test_data): Likewise.
(tanh_test): Likewise.
(tgamma_test_data): Likewise.
(tgamma_test): Likewise.
(totalorder_test_data): Likewise.
(totalorder_test): Likewise.
(totalordermag_test_data): Likewise.
(totalordermag_test): Likewise.
(trunc_test_data): Likewise.
(trunc_test): Likewise.
(ufromfp_test_data): Likewise.
(ufromfp_test): Likewise.
(ufromfpx_test_data): Likewise.
(ufromfpx_test): Likewise.
(y0_test_data): Likewise.
(y0_test): Likewise.
(y1_test_data): Likewise.
(y1_test): Likewise.
(yn_test_data): Likewise.
(yn_test): Likewise.
(significand_test_data): Likewise.
(significand_test): Likewise.
* math/Makefile (auto-libm-test-out-files): Remove variable.
(libm-test-funcs-noauto): New variable.
(libm-test-funcs-all): Likewise.
(libm-test-c-auto): Likewise.
(libm-test-c-noauto): Likewise.
(libm-tests-generated): Add $(libm-test-c-auto) and
$(libm-test-c-noauto).
(generated): Do not add auto-libm-test-out.
(libm-test-c-auto-obj): New variable.
(libm-test-c-noauto-obj): Likewise.
($(objpfx)libm-test.c): Do not generate or use auto-libm-test-out.
($(libm-test-c-noauto-obj)): New static pattern rule.
($(libm-test-c-auto-obj)): Likewise.
(libm-test-incs): New variable.
($(objpfx)libm-have-vector-test.h): Depend on $(libm-test-incs)
and pass it to gen-libm-have-vector-test.sh.
* math/gen-libm-have-vector-test.sh: Expect list of .inc files to
be passed on command line.
* math/libm-test-acos.inc: New file. Content from
math/libm-test.inc.
* math/libm-test-acosh.inc: Likewise.
* math/libm-test-asin.inc: Likewise.
* math/libm-test-asinh.inc: Likewise.
* math/libm-test-atan.inc: Likewise.
* math/libm-test-atan2.inc: Likewise.
* math/libm-test-atanh.inc: Likewise.
* math/libm-test-cabs.inc: Likewise.
* math/libm-test-cacos.inc: Likewise.
* math/libm-test-cacosh.inc: Likewise.
* math/libm-test-canonicalize.inc: Likewise.
* math/libm-test-carg.inc: Likewise.
* math/libm-test-casin.inc: Likewise.
* math/libm-test-casinh.inc: Likewise.
* math/libm-test-catan.inc: Likewise.
* math/libm-test-catanh.inc: Likewise.
* math/libm-test-cbrt.inc: Likewise.
* math/libm-test-ccos.inc: Likewise.
* math/libm-test-ccosh.inc: Likewise.
* math/libm-test-ceil.inc: Likewise.
* math/libm-test-cexp.inc: Likewise.
* math/libm-test-cimag.inc: Likewise.
* math/libm-test-clog.inc: Likewise.
* math/libm-test-clog10.inc: Likewise.
* math/libm-test-conj.inc: Likewise.
* math/libm-test-copysign.inc: Likewise.
* math/libm-test-cos.inc: Likewise.
* math/libm-test-cosh.inc: Likewise.
* math/libm-test-cpow.inc: Likewise.
* math/libm-test-cproj.inc: Likewise.
* math/libm-test-creal.inc: Likewise.
* math/libm-test-csin.inc: Likewise.
* math/libm-test-csinh.inc: Likewise.
* math/libm-test-csqrt.inc: Likewise.
* math/libm-test-ctan.inc: Likewise.
* math/libm-test-ctanh.inc: Likewise.
* math/libm-test-erf.inc: Likewise.
* math/libm-test-erfc.inc: Likewise.
* math/libm-test-exp.inc: Likewise.
* math/libm-test-exp10.inc: Likewise.
* math/libm-test-exp2.inc: Likewise.
* math/libm-test-expm1.inc: Likewise.
* math/libm-test-fabs.inc: Likewise.
* math/libm-test-fdim.inc: Likewise.
* math/libm-test-floor.inc: Likewise.
* math/libm-test-fma.inc: Likewise.
* math/libm-test-fmax.inc: Likewise.
* math/libm-test-fmaxmag.inc: Likewise.
* math/libm-test-fmin.inc: Likewise.
* math/libm-test-fminmag.inc: Likewise.
* math/libm-test-fmod.inc: Likewise.
* math/libm-test-fpclassify.inc: Likewise.
* math/libm-test-frexp.inc: Likewise.
* math/libm-test-fromfp.inc: Likewise.
* math/libm-test-fromfpx.inc: Likewise.
* math/libm-test-getpayload.inc: Likewise.
* math/libm-test-hypot.inc: Likewise.
* math/libm-test-ilogb.inc: Likewise.
* math/libm-test-iscanonical.inc: Likewise.
* math/libm-test-iseqsig.inc: Likewise.
* math/libm-test-isfinite.inc: Likewise.
* math/libm-test-isgreater.inc: Likewise.
* math/libm-test-isgreaterequal.inc: Likewise.
* math/libm-test-isinf.inc: Likewise.
* math/libm-test-isless.inc: Likewise.
* math/libm-test-islessequal.inc: Likewise.
* math/libm-test-islessgreater.inc: Likewise.
* math/libm-test-isnan.inc: Likewise.
* math/libm-test-isnormal.inc: Likewise.
* math/libm-test-issignaling.inc: Likewise.
* math/libm-test-issubnormal.inc: Likewise.
* math/libm-test-isunordered.inc: Likewise.
* math/libm-test-iszero.inc: Likewise.
* math/libm-test-j0.inc: Likewise.
* math/libm-test-j1.inc: Likewise.
* math/libm-test-jn.inc: Likewise.
* math/libm-test-lgamma.inc: Likewise.
* math/libm-test-llogb.inc: Likewise.
* math/libm-test-llrint.inc: Likewise.
* math/libm-test-llround.inc: Likewise.
* math/libm-test-log.inc: Likewise.
* math/libm-test-log10.inc: Likewise.
* math/libm-test-log1p.inc: Likewise.
* math/libm-test-log2.inc: Likewise.
* math/libm-test-logb.inc: Likewise.
* math/libm-test-lrint.inc: Likewise.
* math/libm-test-lround.inc: Likewise.
* math/libm-test-modf.inc: Likewise.
* math/libm-test-nearbyint.inc: Likewise.
* math/libm-test-nextafter.inc: Likewise.
* math/libm-test-nextdown.inc: Likewise.
* math/libm-test-nexttoward.inc: Likewise.
* math/libm-test-nextup.inc: Likewise.
* math/libm-test-pow.inc: Likewise.
* math/libm-test-remainder.inc: Likewise.
* math/libm-test-remquo.inc: Likewise.
* math/libm-test-rint.inc: Likewise.
* math/libm-test-round.inc: Likewise.
* math/libm-test-roundeven.inc: Likewise.
* math/libm-test-scalb.inc: Likewise.
* math/libm-test-scalbln.inc: Likewise.
* math/libm-test-scalbn.inc: Likewise.
* math/libm-test-setpayload.inc: Likewise.
* math/libm-test-setpayloadsig.inc: Likewise.
* math/libm-test-signbit.inc: Likewise.
* math/libm-test-significand.inc: Likewise.
* math/libm-test-sin.inc: Likewise.
* math/libm-test-sincos.inc: Likewise.
* math/libm-test-sinh.inc: Likewise.
* math/libm-test-sqrt.inc: Likewise.
* math/libm-test-tan.inc: Likewise.
* math/libm-test-tanh.inc: Likewise.
* math/libm-test-tgamma.inc: Likewise.
* math/libm-test-totalorder.inc: Likewise.
* math/libm-test-totalordermag.inc: Likewise.
* math/libm-test-trunc.inc: Likewise.
* math/libm-test-ufromfp.inc: Likewise.
* math/libm-test-ufromfpx.inc: Likewise.
* math/libm-test-y0.inc: Likewise.
* math/libm-test-y1.inc: Likewise.
* math/libm-test-yn.inc: Likewise.
* math/README.libm-test: Update.
|
|
|
|
|
|
In non-default rounding modes, tgamma can be slightly less accurate
than permitted by glibc's accuracy goals.
Part of the problem is error accumulation, addressed in this patch by
setting round-to-nearest for internal computations. However, there
was also a bug in the code dealing with computing pow (x + n, x + n)
where x + n is not exactly representable, providing another source of
error even in round-to-nearest mode; it was necessary to address both
bugs to get errors for all testcases within glibc's accuracy goals.
Given this second fix, accuracy in round-to-nearest mode is also
improved (hence regeneration of ulps for tgamma should be from scratch
- truncate libm-test-ulps or at least remove existing tgamma entries -
so that the expected ulps can be reduced).
Some additional complications also arose. Certain tgamma tests should
strictly, according to IEEE semantics, overflow or not depending on
the rounding mode; this is beyond the scope of glibc's accuracy goals
for any function without exactly-determined results, but
gen-auto-libm-tests doesn't handle being lax there as it does for
underflow. (libm-test.inc also doesn't handle being lax about whether
the result in cases very close to the overflow threshold is infinity
or a finite value close to overflow, but that doesn't cause problems
in this case though I've seen it cause problems with random test
generation for some functions.) Thus, spurious-overflow markings,
with a comment, are added to auto-libm-test-in (no bug in Bugzilla
because the issue is with the testsuite, not a user-visible bug in
glibc). And on x86, after the patch I saw ERANGE issues as previously
reported by Carlos (see my commentary in
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>), which
needed addressing by ensuring excess range and precision were
eliminated at various points if FLT_EVAL_METHOD != 0.
I also noticed and fixed a cosmetic issue where 1.0f was used in long
double functions and should have been 1.0L.
This completes the move of all functions to testing in all rounding
modes with ALL_RM_TEST, so gen-libm-have-vector-test.sh is updated to
remove the workaround for some functions not using ALL_RM_TEST.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #18613]
* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Take log of
X_ADJ not X when adjusting exponent.
(__ieee754_gamma_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammaf_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* math/libm-test.inc (tgamma_test_data): Remove one test. Moved
to auto-libm-test-in.
(tgamma_test): Use ALL_RM_TEST.
* math/auto-libm-test-in: Add one test of tgamma. Mark some other
tests of tgamma with spurious-overflow.
* math/auto-libm-test-out: Regenerated.
* math/gen-libm-have-vector-test.sh: Do not check for START.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
|
|
Here is implementation of vectorized sincos containing SSE, AVX,
AVX2 and AVX512 versions according to Vector ABI
<https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>.
* NEWS: Mention addition of x86_64 vector sincos.
* bits/libm-simd-decl-stubs.h: Added stubs for sincos.
* math/math.h (__MATHDECL_VEC): New macro.
* math/bits/mathcalls.h: Added sincos declaration with __MATHDECL_VEC.
* math/gen-libm-have-vector-test.sh: Added generation of sincos wrapper
declaration under condition.
* math/test-vec-loop.h (TEST_VEC_LOOP): Refactored.
* math/test-double-vlen2.h: Added wrapper for sincos tests, reflected
TEST_VEC_LOOP change.
* math/test-double-vlen4.h: Likewise.
* math/test-double-vlen8.h: Likewise.
* math/test-float-vlen16.h: Reflected TEST_VEC_LOOP change.
* math/test-float-vlen4.h: Likewise.
* math/test-float-vlen8.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: New symbols added.
* sysdeps/x86/fpu/bits/math-vector.h: Added sincos SIMD declaration.
* sysdeps/x86_64/fpu/Makefile (libmvec-support): Added new files.
* sysdeps/x86_64/fpu/Versions: New versions added.
* sysdeps/x86_64/fpu/libm-test-ulps: Regenerated.
* sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines):
Added build of SSE, AVX2 and AVX512 IFUNC versions.
* sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: New file.
* sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S: New file.
* sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: New file.
* sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S: New file.
* sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: New file.
* sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S: New file.
* sysdeps/x86_64/fpu/svml_d_sincos2_core.S: New file.
* sysdeps/x86_64/fpu/svml_d_sincos4_core.S: New file.
* sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S: New file.
* sysdeps/x86_64/fpu/svml_d_sincos8_core.S: New file.
* sysdeps/x86_64/fpu/svml_d_sincos_data.S: New file.
* sysdeps/x86_64/fpu/svml_d_sincos_data.h: New file.
* sysdeps/x86_64/fpu/svml_d_wrapper_impl.h: Added wrappers for sincos.
* sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: Vector sincos tests.
* sysdeps/x86_64/fpu/test-double-vlen2.c: Likewise.
* sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: Likewise.
* sysdeps/x86_64/fpu/test-double-vlen4-avx2.c: Likewise.
* sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: Likewise.
* sysdeps/x86_64/fpu/test-double-vlen4.c: Likewise.
* sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: Likewise.
* sysdeps/x86_64/fpu/test-double-vlen8.c: Likewise.
|
|
We test vector math functions using scalar tests infrastructure with
help of special wrappers from scalar versions to vector ones. Wrapper
implemented using platform specific vector types and placed in separate
file for compilation with architecture specific options, main part of
test has no such options. With help of system of definitions unfolding
of which is drived from test code we have wrapper called in individual
testing function instead of scalar function. Also system of definitions
includes generated during make check header math/libm-have-vector-test.h
with series of conditional definitions which help to avoid build fails
for functions having no vector versions; runtime architecture check
to prevent runtime fails of test run on inappropriate hardware.
* math/Makefile: Added rules for vector tests.
* math/gen-libm-have-vector-test.sh: Added generation of wrapper
declaration under condition.
* math/test-double-vlen2.h: New file.
* math/test-double-vlen4.h: New file.
* math/test-double-vlen8.h: New file.
* math/test-vec-loop.h: Added initialization macro.
* sysdeps/x86_64/fpu/Makefile: Added variables for vector tests.
* sysdeps/x86_64/fpu/libm-test-ulps: Regenarated.
* sysdeps/x86_64/fpu/math-tests-arch.h: New file.
* sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: New file.
* sysdeps/x86_64/fpu/test-double-vlen2.c: New file.
* sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: New file.
* sysdeps/x86_64/fpu/test-double-vlen4-avx2.c: New file.
* sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: New file.
* sysdeps/x86_64/fpu/test-double-vlen4.c: New file.
* sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: New file.
* sysdeps/x86_64/fpu/test-double-vlen8.c: New file.
|
|
of method for separation which exactly testing function needed to run with
help of generated during make check header with series of conditional
definitions.
2015-05-14 Andrew Senkevich <andrew.senkevich@intel.com>
* math/gen-libm-have-vector-test.sh: Script generates series of macros
for conditions in testing functions.
* math/Makefile: Added call of libm-have-vector-test.sh.
* math/libm-test.inc (HAVE_VECTOR): New macros.
|