[PATCH v2] x86-64: Disable libmvec ABI test for Clang
H.J. Lu
hjl.tools@gmail.com
Wed Dec 18 19:19:05 GMT 2024
Unlike GCC, libmvec support in Clang is hard-coded. Clang doesn't use
macros defined in <bits/libm-simd-decl-stubs.h> to support new libmvec
functions added to glibc. Also since Clang can't vectorize some test
loops to test libmvec ABI:
In file included from ../sysdeps/x86_64/fpu/test-double-libmvec-asin.c:3:
../sysdeps/x86_64/fpu/test-vector-abi-arg1.h:38:1: error: loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Werror,-Wpass-failed=transform-warning]
38 | #pragma omp simd
| ^
1 error generated.
disable libmvec ABI test for Clang.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
sysdeps/x86_64/fpu/Makefile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
index 8eb382a177..e39d31c117 100644
--- a/sysdeps/x86_64/fpu/Makefile
+++ b/sysdeps/x86_64/fpu/Makefile
@@ -28,6 +28,8 @@ endif
ifneq ($(multi-arch),no)
# Variables for libmvec tests.
ifeq ($(subdir)$(build-mathvec),mathyes)
+ifneq ($(have-test-clang),yes)
+# NB: Clang 19 can't vectorize the test loop to test libmvec ABI.
libmvec-tests += double-vlen2 double-vlen4 double-vlen4-avx2 \
float-vlen4 float-vlen8 float-vlen8-avx2 \
double-vlen8 float-vlen16
@@ -36,6 +38,7 @@ tests += \
$(libmvec-abi-func-avx-tests) \
$(libmvec-abi-func-avx2-tests) \
$(libmvec-abi-func-avx512f-tests)
+endif
double-vlen2-funcs = $(libmvec-funcs)
double-vlen4-funcs = $(libmvec-funcs)
--
2.47.1
More information about the Libc-alpha
mailing list