summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2014-03-14 08:51:25 -0700
committerH.J. Lu <hjl.tools@gmail.com>2014-03-14 08:51:25 -0700
commitaa4de9cea5c07d43caeaca9722c2d417e9a2919c (patch)
treead0d817c67581c5c0e5b54d0e3213b361075485e
parent2e03fae7b711b87733f8c897cb42ea74d2dc156a (diff)
downloadglibc-aa4de9cea5c07d43caeaca9722c2d417e9a2919c.tar.gz
Check AVX-512 assembler support first
It checks AVX-512 assembler support first and sets libc_cv_cc_avx512 to $libc_cv_asm_avx512, instead of yes. GCC won't support AVX-512 if assembler doesn't support it. * sysdeps/x86_64/configure.ac: Check AVX-512 assembler support first. Disable AVX-512 GCC support if assembler doesn't support it. * sysdeps/x86_64/configure: Regenerated.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/x86_64/configure52
-rw-r--r--sysdeps/x86_64/configure.ac18
3 files changed, 42 insertions, 35 deletions
diff --git a/ChangeLog b/ChangeLog
index 28370933e7..fef3cf5cb5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-03-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/configure.ac: Check AVX-512 assembler support
+ first. Disable AVX-512 GCC support if assembler doesn't support
+ it.
+ * sysdeps/x86_64/configure: Regenerated.
+
2014-03-13 Carlos O'Donell <carlos@redhat.com>
* nptl/pthread_attr_setstack.c (__pthread_attr_setstack)
diff --git a/sysdeps/x86_64/configure b/sysdeps/x86_64/configure
index b931e682ea..c1c88c8619 100644
--- a/sysdeps/x86_64/configure
+++ b/sysdeps/x86_64/configure
@@ -95,32 +95,6 @@ fi
config_vars="$config_vars
config-cflags-avx = $libc_cv_cc_avx"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX512 support" >&5
-$as_echo_n "checking for AVX512 support... " >&6; }
-if ${libc_cv_cc_avx512+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if { ac_try='${CC-cc} -mavx512f -xc /dev/null -S -o /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_cc_avx512=yes
-else
- libc_cv_cc_avx512=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_avx512" >&5
-$as_echo "$libc_cv_cc_avx512" >&6; }
-if test $libc_cv_cc_avx512 = yes; then
- $as_echo "#define HAVE_AVX512_SUPPORT 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-config-cflags-avx512 = $libc_cv_cc_avx512"
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX512 support in assembler" >&5
$as_echo_n "checking for AVX512 support in assembler... " >&6; }
if ${libc_cv_asm_avx512+:} false; then :
@@ -148,6 +122,32 @@ if test $libc_cv_asm_avx512 == yes; then
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX512 support" >&5
+$as_echo_n "checking for AVX512 support... " >&6; }
+if ${libc_cv_cc_avx512+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if { ac_try='${CC-cc} -mavx512f -xc /dev/null -S -o /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_cc_avx512=$libc_cv_asm_avx512
+else
+ libc_cv_cc_avx512=no
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_avx512" >&5
+$as_echo "$libc_cv_cc_avx512" >&6; }
+if test $libc_cv_cc_avx512 = yes; then
+ $as_echo "#define HAVE_AVX512_SUPPORT 1" >>confdefs.h
+
+fi
+config_vars="$config_vars
+config-cflags-avx512 = $libc_cv_cc_avx512"
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5
$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; }
if ${libc_cv_cc_sse2avx+:} false; then :
diff --git a/sysdeps/x86_64/configure.ac b/sysdeps/x86_64/configure.ac
index 5e5d61b317..d34f9a8eec 100644
--- a/sysdeps/x86_64/configure.ac
+++ b/sysdeps/x86_64/configure.ac
@@ -23,15 +23,6 @@ if test $libc_cv_cc_avx = yes; then
fi
LIBC_CONFIG_VAR([config-cflags-avx], [$libc_cv_cc_avx])
-dnl Check if -mavx512f works.
-AC_CACHE_CHECK(for AVX512 support, libc_cv_cc_avx512, [dnl
-LIBC_TRY_CC_OPTION([-mavx512f], [libc_cv_cc_avx512=yes], [libc_cv_cc_avx512=no])
-])
-if test $libc_cv_cc_avx512 = yes; then
- AC_DEFINE(HAVE_AVX512_SUPPORT)
-fi
-LIBC_CONFIG_VAR([config-cflags-avx512], [$libc_cv_cc_avx512])
-
dnl Check if asm supports AVX512.
AC_CACHE_CHECK(for AVX512 support in assembler, libc_cv_asm_avx512, [dnl
cat > conftest.s <<\EOF
@@ -47,6 +38,15 @@ if test $libc_cv_asm_avx512 == yes; then
AC_DEFINE(HAVE_AVX512_ASM_SUPPORT)
fi
+dnl Check if -mavx512f works.
+AC_CACHE_CHECK(for AVX512 support, libc_cv_cc_avx512, [dnl
+LIBC_TRY_CC_OPTION([-mavx512f], [libc_cv_cc_avx512=$libc_cv_asm_avx512], [libc_cv_cc_avx512=no])
+])
+if test $libc_cv_cc_avx512 = yes; then
+ AC_DEFINE(HAVE_AVX512_SUPPORT)
+fi
+LIBC_CONFIG_VAR([config-cflags-avx512], [$libc_cv_cc_avx512])
+
dnl Check if -msse2avx works.
AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl
LIBC_TRY_CC_OPTION([-msse2avx],