From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 45A7C385840D; Mon, 29 Jan 2024 17:59:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 45A7C385840D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1706551155; bh=mhLvAMSTHmpBSDc9HgwiqgmzAd1PhR4sqMPuBgUn7Cc=; h=From:To:Subject:Date:From; b=W8ViZK0IVZJ1IeCJV5FkRkT/A3zK9SOe8Rje77/dBy5CwskmZO5Jkjm4UIxC+HXtl L1Yyv3+NsJgMctwWMPOhr4zLp+tlO4NsihCv+HJkj6NnZQ6jN0XEc/wBzr8yEzXWFX 8DNddr/8Oc17cldo7W8azD/iwiV+LyJh0S1p6tQk= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not support attribute '__simd__' X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/azanella/clang X-Git-Oldrev: a698c2a7f5aa1f567b3f639844d43cf38a596d8a X-Git-Newrev: bd03e9748370ba506beee68fcf2e171f8ad124b8 Message-Id: <20240129175915.45A7C385840D@sourceware.org> Date: Mon, 29 Jan 2024 17:59:15 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bd03e9748370ba506beee68fcf2e171f8ad124b8 commit bd03e9748370ba506beee68fcf2e171f8ad124b8 Author: Adhemerval Zanella Date: Thu Jun 9 09:51:46 2022 -0300 x86_64: Disable libmvec tests if compiler does not support attribute '__simd__' clang ignore the attribute, which is required by libmvec tests. Diff: --- sysdeps/x86_64/fpu/Makeconfig | 2 ++ sysdeps/x86_64/fpu/configure | 61 +++++++++++++++++++++++++++++++++++++++++ sysdeps/x86_64/fpu/configure.ac | 30 ++++++++++++++++++++ 3 files changed, 93 insertions(+) diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig index 716c4578c4..f868f67dab 100644 --- a/sysdeps/x86_64/fpu/Makeconfig +++ b/sysdeps/x86_64/fpu/Makeconfig @@ -93,6 +93,7 @@ bench-libmvec-float = \ $(addsuffix f, $(addprefix float-vlen8-avx2-, $(libmvec-bench-funcs))) \ $(addsuffix f, $(addprefix float-vlen16-, $(libmvec-bench-funcs))) \ +ifeq ($(build-mathvec-pragma-simd-omp),yes) # The base libmvec ABI tests. libmvec-abi-func-tests = \ $(addprefix test-double-libmvec-,$(libmvec-funcs)) \ @@ -109,6 +110,7 @@ libmvec-abi-func-avx2-tests = \ # The AVX512F libmvec ABI tests. libmvec-abi-func-avx512f-tests = \ $(addsuffix -avx512f,$(libmvec-abi-func-tests)) +endif $(common-objpfx)libmvec.mk: $(common-objpfx)config.make (echo "ifeq (\$$(subdir)\$$(build-mathvec),mathyes)"; \ diff --git a/sysdeps/x86_64/fpu/configure b/sysdeps/x86_64/fpu/configure new file mode 100644 index 0000000000..b7ba29c4b2 --- /dev/null +++ b/sysdeps/x86_64/fpu/configure @@ -0,0 +1,61 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports libmvec calls through fopenmp" >&5 +$as_echo_n "checking whether compiler supports libmvec calls through fopenmp... " >&6; } +if ${libc_cv_libmvec_pragma_omp_simd_support+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat > conftest.c <&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + if { ac_try='grep '_ZGVbN4v_sinf' conftest.s >/dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } \ + || { ac_try='grep '_ZGVcN8v_sinf' conftest.s >/dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } \ + || { ac_try='grep '_ZGVdN8v_sinf' conftest.s >/dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } \ + || { ac_try='grep '_ZGVeN16v_sinf' conftest.s >/dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + libc_cv_libmvec_pragma_omp_simd_support=yes + fi +fi +rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_libmvec_pragma_omp_simd_support" >&5 +$as_echo "$libc_cv_libmvec_pragma_omp_simd_support" >&6; } +config_vars="$config_vars +build-mathvec-pragma-simd-omp = $libc_cv_libmvec_pragma_omp_simd_support" diff --git a/sysdeps/x86_64/fpu/configure.ac b/sysdeps/x86_64/fpu/configure.ac new file mode 100644 index 0000000000..1bc5af4ebe --- /dev/null +++ b/sysdeps/x86_64/fpu/configure.ac @@ -0,0 +1,30 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. + +AC_CACHE_CHECK([whether compiler supports libmvec calls through fopenmp], + libc_cv_libmvec_pragma_omp_simd_support, [ +dnl +cat > conftest.c <&AS_MESSAGE_LOG_FD]) + then + if AC_TRY_COMMAND([grep '_ZGVbN4v_sinf' conftest.s >/dev/null]) \ + || AC_TRY_COMMAND([grep '_ZGVcN8v_sinf' conftest.s >/dev/null]) \ + || AC_TRY_COMMAND([grep '_ZGVdN8v_sinf' conftest.s >/dev/null]) \ + || AC_TRY_COMMAND([grep '_ZGVeN16v_sinf' conftest.s >/dev/null]) + then + libc_cv_libmvec_pragma_omp_simd_support=yes + fi +fi +rm -f conftest*]) +LIBC_CONFIG_VAR([build-mathvec-pragma-simd-omp], + [$libc_cv_libmvec_pragma_omp_simd_support])