From aa4de9cea5c07d43caeaca9722c2d417e9a2919c Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 14 Mar 2014 08:51:25 -0700 Subject: [PATCH] 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. --- ChangeLog | 7 +++++ sysdeps/x86_64/configure | 52 ++++++++++++++++++------------------- sysdeps/x86_64/configure.ac | 18 ++++++------- 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 + + * 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 * 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],