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.
This commit is contained in:
H.J. Lu 2014-03-14 08:51:25 -07:00
parent 2e03fae7b7
commit aa4de9cea5
3 changed files with 42 additions and 35 deletions

View File

@ -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> 2014-03-13 Carlos O'Donell <carlos@redhat.com>
* nptl/pthread_attr_setstack.c (__pthread_attr_setstack) * nptl/pthread_attr_setstack.c (__pthread_attr_setstack)

View File

@ -95,32 +95,6 @@ fi
config_vars="$config_vars config_vars="$config_vars
config-cflags-avx = $libc_cv_cc_avx" 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 "$as_me:${as_lineno-$LINENO}: checking for AVX512 support in assembler" >&5
$as_echo_n "checking for AVX512 support in assembler... " >&6; } $as_echo_n "checking for AVX512 support in assembler... " >&6; }
if ${libc_cv_asm_avx512+:} false; then : if ${libc_cv_asm_avx512+:} false; then :
@ -148,6 +122,32 @@ if test $libc_cv_asm_avx512 == yes; then
fi 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 "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5
$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; } $as_echo_n "checking for AVX encoding of SSE instructions... " >&6; }
if ${libc_cv_cc_sse2avx+:} false; then : if ${libc_cv_cc_sse2avx+:} false; then :

View File

@ -23,15 +23,6 @@ if test $libc_cv_cc_avx = yes; then
fi fi
LIBC_CONFIG_VAR([config-cflags-avx], [$libc_cv_cc_avx]) 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. dnl Check if asm supports AVX512.
AC_CACHE_CHECK(for AVX512 support in assembler, libc_cv_asm_avx512, [dnl AC_CACHE_CHECK(for AVX512 support in assembler, libc_cv_asm_avx512, [dnl
cat > conftest.s <<\EOF cat > conftest.s <<\EOF
@ -47,6 +38,15 @@ if test $libc_cv_asm_avx512 == yes; then
AC_DEFINE(HAVE_AVX512_ASM_SUPPORT) AC_DEFINE(HAVE_AVX512_ASM_SUPPORT)
fi 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. dnl Check if -msse2avx works.
AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl
LIBC_TRY_CC_OPTION([-msse2avx], LIBC_TRY_CC_OPTION([-msse2avx],