public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not issue them with openmp
@ 2022-10-04 13:01 Adhemerval Zanella
  0 siblings, 0 replies; 6+ messages in thread
From: Adhemerval Zanella @ 2022-10-04 13:01 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=feead1fbee85de6b2c91fea51588b63f594e9af9

commit feead1fbee85de6b2c91fea51588b63f594e9af9
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Jun 9 09:51:46 2022 -0300

    x86_64: Disable libmvec tests if compiler does not issue them with openmp

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 5c03b1dbb8..e01a39d35e 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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[i] = sinf (x[i]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if { ac_try='${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&5'
+  { { 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
+  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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[[i]] = sinf (x[[i]]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&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])

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not issue them with openmp
@ 2023-08-30 12:38 Adhemerval Zanella
  0 siblings, 0 replies; 6+ messages in thread
From: Adhemerval Zanella @ 2023-08-30 12:38 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e77af7f7e0f2ff6a55aa7a6e098e5da3e5770044

commit e77af7f7e0f2ff6a55aa7a6e098e5da3e5770044
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Jun 9 09:51:46 2022 -0300

    x86_64: Disable libmvec tests if compiler does not issue them with openmp

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 7d81e6e859..1c7c018a97 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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[i] = sinf (x[i]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if { ac_try='${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&5'
+  { { 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
+  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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[[i]] = sinf (x[[i]]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&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])

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not issue them with openmp
@ 2023-02-09 19:50 Adhemerval Zanella
  0 siblings, 0 replies; 6+ messages in thread
From: Adhemerval Zanella @ 2023-02-09 19:50 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=53cd3f2774693cd822315b9142b92ba13e322bad

commit 53cd3f2774693cd822315b9142b92ba13e322bad
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Jun 9 09:51:46 2022 -0300

    x86_64: Disable libmvec tests if compiler does not issue them with openmp

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 7d81e6e859..1c7c018a97 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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[i] = sinf (x[i]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if { ac_try='${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&5'
+  { { 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
+  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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[[i]] = sinf (x[[i]]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&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])

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not issue them with openmp
@ 2022-10-28 17:43 Adhemerval Zanella
  0 siblings, 0 replies; 6+ messages in thread
From: Adhemerval Zanella @ 2022-10-28 17:43 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0108c4fcc299af5f44771320877a872b70cfe9f9

commit 0108c4fcc299af5f44771320877a872b70cfe9f9
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Jun 9 09:51:46 2022 -0300

    x86_64: Disable libmvec tests if compiler does not issue them with openmp

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 5c03b1dbb8..e01a39d35e 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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[i] = sinf (x[i]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if { ac_try='${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&5'
+  { { 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
+  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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[[i]] = sinf (x[[i]]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&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])

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not issue them with openmp
@ 2022-06-09 21:27 Adhemerval Zanella
  0 siblings, 0 replies; 6+ messages in thread
From: Adhemerval Zanella @ 2022-06-09 21:27 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a4b3d56f826e7a2e4669da63d86ff22bd33a63c7

commit a4b3d56f826e7a2e4669da63d86ff22bd33a63c7
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Jun 9 09:51:46 2022 -0300

    x86_64: Disable libmvec tests if compiler does not issue them with openmp

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 5c03b1dbb8..e01a39d35e 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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[i] = sinf (x[i]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if { ac_try='${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&5'
+  { { 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
+  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..d731d00dbb
--- /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 <<EOF
+__attribute__ ((__simd__)) float sinf (float);
+void
+foo (float *x)
+{ 
+  #pragma omp simd
+  for (int i = 0; i < 256; i++)
+    x[[i]] = sinf (x[[i]]);
+}
+EOF
+libc_cv_libmvec_pragma_omp_simd_support=no
+# Check regardless of the ABI used
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS -fno-inline -fopenmp -Wno-unknown-pragmas -S conftest.c -o conftest.s 1>&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])


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not issue them with openmp
@ 2022-06-09 13:23 Adhemerval Zanella
  0 siblings, 0 replies; 6+ messages in thread
From: Adhemerval Zanella @ 2022-06-09 13:23 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6b41b0301a780c5a5be4f16d345e0a723533c300

commit 6b41b0301a780c5a5be4f16d345e0a723533c300
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Jun 9 09:51:46 2022 -0300

    x86_64: Disable libmvec tests if compiler does not issue them with openmp

Diff:
---
 sysdeps/x86_64/fpu/Makeconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig
index 5c03b1dbb8..e01a39d35e 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)"; \


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-08-30 12:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-04 13:01 [glibc/azanella/clang] x86_64: Disable libmvec tests if compiler does not issue them with openmp Adhemerval Zanella
  -- strict thread matches above, loose matches on Subject: below --
2023-08-30 12:38 Adhemerval Zanella
2023-02-09 19:50 Adhemerval Zanella
2022-10-28 17:43 Adhemerval Zanella
2022-06-09 21:27 Adhemerval Zanella
2022-06-09 13:23 Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).