]> git.ipfire.org Git - thirdparty/glibc.git/commit - math/test-float.h
Run libm long double tests for long double = double.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 11 Oct 2017 17:46:19 +0000 (17:46 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 11 Oct 2017 17:46:19 +0000 (17:46 +0000)
commitbc9620d040b7494f457ccb750c9797b47ed76ada
treeb2a800a1b6bc16ee769881d38b4c160a4bd8b92b
parent09c76a74099826f4c6e1c4c431d7659f78112862
Run libm long double tests for long double = double.

All interfaces in the glibc API ought to be covered by the testsuite,
even where they alias other interfaces.  This patch arranges for libm
tests to be run for long double when it aliases double; previously
those tests were run only for the floating-point types with distinct
formats.  The long double tests are made to use the double ulps values
in this case, as having a separate duplicate set of ulps for them
seems unnecessary; to accommodate that, the test-<type>.h headers now
specify the macro indexing into the ulps array explicitly instead of
having it computed from PREFIX.

Nothing special is done about vector function tests.  None are
supported for any long double = double platforms, and supporting
vector functions for a type alias such as _Float32 would not simply
fall out of adding the scalar aliases for that type - it would require
vector function wrappers like those for *_finite (or, better, a new
GCC feature to allow specifying the asm name for vector functions
independently of that for scalar ones, as previously discussed), so it
seems reasonable to require the sysdeps makefile setting of
libmvec-tests to be updated if any such tests are to be run for type
aliases.

Tested for x86_64 and arm.

* math/Makefile (test-types-basic): New variable.
(test-types): Likewise.
(libm-test-support): Use $(test-types) instead of $(types).
(libm-tests-base-normal): Likewise.
(libm-tests-base-finite): Likewise.
(libm-tests-base-inline): Likewise.
(generated): Likewise.
($(objpfx)libm-test-support-$(t).c): Likewise.
(libm-tests-for-type iterator): Likewise.
(libm-test-support iterator): Likewise.
* math/libm-test-support.c (ulp_i_idx): Use ULP_I_IDX.
(ulp_idx): Use ULP_IDX.
* math/test-ldouble.h: Include <float.h>.
(TYPE_STR): Define conditional on [LDBL_MANT_DIG == DBL_MANT_DIG].
(ULP_IDX): New macro.
(ULP_I_IDX): Likewise.
* math/test-double.h (ULP_IDX): Likewise.
(ULP_I_IDX): Likewise.
* math/test-float.h (ULP_IDX): Likewise.
(ULP_I_IDX): Likewise.
* math/test-float128.h (ULP_IDX): Likewise.
(ULP_I_IDX): Likewise.
ChangeLog
math/Makefile
math/libm-test-support.c
math/test-double.h
math/test-float.h
math/test-float128.h
math/test-ldouble.h