diff options
author | Kirill Yukhin <kirill.yukhin@intel.com> | 2015-10-02 15:25:26 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2015-10-02 15:25:26 +0000 |
commit | ab91c076b76cce3f0e8eb767765c314c633dfaff (patch) | |
tree | e1a05f69364724a4e944778896f96fba5010152a | |
parent | 33e767e26e58d2eb63e96950aa7bf3e2634161a2 (diff) | |
download | gcc-ab91c076b76cce3f0e8eb767765c314c633dfaff.tar.gz |
AVX-512.
AVX-512. Add missing features to cpuinfo.c
gcc/
* config/i386/i386.c (processor_features): Add F_AVX512VBMI,
F_AVX512IFMA.
(isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
libgcc/
* config/i386/cpuinfo.c (processor_features): Add
FEATURE_AVX512VBMI and FEATURE_AVX512VBMI.
testsuite/
* gcc.target/i386/builtin_target.c: Handle "avx512ifma"
and "avx512vbmi".
From-SVN: r228399
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/builtin_target.c | 4 | ||||
-rw-r--r-- | libgcc/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/config/i386/cpuinfo.c | 8 |
6 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f6875c87a2..493a4a8b47a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com> + * config/i386/i386.c (processor_features): Add F_AVX512VBMI, + F_AVX512IFMA. + (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA. + 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 1ccc33e525c..171917536a0 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -36591,6 +36591,8 @@ fold_builtin_cpu (tree fndecl, tree *args) F_AVX512CD, F_AVX512ER, F_AVX512PF, + F_AVX512VBMI, + F_AVX512IFMA, F_MAX }; @@ -36699,6 +36701,8 @@ fold_builtin_cpu (tree fndecl, tree *args) {"avx512cd",F_AVX512CD}, {"avx512er",F_AVX512ER}, {"avx512pf",F_AVX512PF}, + {"avx512vbmi",F_AVX512VBMI}, + {"avx512ifma",F_AVX512IFMA}, }; tree __processor_model_type = build_processor_model_struct (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bceeaaa8b31..943227a8df8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com> + + * gcc.target/i386/builtin_target.c: Handle "avx512ifma" + and "avx512vbmi". + 2015-10-02 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/67756 diff --git a/gcc/testsuite/gcc.target/i386/builtin_target.c b/gcc/testsuite/gcc.target/i386/builtin_target.c index aff4559845c..a9a8753ce04 100644 --- a/gcc/testsuite/gcc.target/i386/builtin_target.c +++ b/gcc/testsuite/gcc.target/i386/builtin_target.c @@ -200,6 +200,10 @@ check_features (unsigned int ecx, unsigned int edx, assert (__builtin_cpu_supports ("avx512bw")); if (ebx & bit_AVX512DQ) assert (__builtin_cpu_supports ("avx512dq")); + if (ebx & bit_AVX512IFMA) + assert (__builtin_cpu_supports ("avx512ifma")); + if (ebx & bit_AVX512VBMI) + assert (__builtin_cpu_supports ("avx512vbmi")); } } diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index a2d39c07dfa..e534c6db959 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com> + + * config/i386/cpuinfo.c (processor_features): Add + FEATURE_AVX512VBMI and FEATURE_AVX512VBMI. + 2015-09-28 Joseph Myers <joseph@codesourcery.com> * soft-fp/adddf3.c: Update from glibc. diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c index ddb49e3ad9a..40ed84cf6cb 100644 --- a/libgcc/config/i386/cpuinfo.c +++ b/libgcc/config/i386/cpuinfo.c @@ -110,7 +110,9 @@ enum processor_features FEATURE_AVX512DQ, FEATURE_AVX512CD, FEATURE_AVX512ER, - FEATURE_AVX512PF + FEATURE_AVX512PF, + FEATURE_AVX512VBMI, + FEATURE_AVX512IFMA }; struct __processor_model @@ -336,6 +338,10 @@ get_available_features (unsigned int ecx, unsigned int edx, features |= (1 << FEATURE_AVX512PF); if (ebx & bit_AVX512ER) features |= (1 << FEATURE_AVX512ER); + if (ebx & bit_AVX512IFMA) + features |= (1 << FEATURE_AVX512IFMA); + if (ecx & bit_AVX512VBMI) + features |= (1 << FEATURE_AVX512VBMI); } unsigned int ext_level; |