diff options
author | Julia Koval <julia.koval@intel.com> | 2018-03-15 08:52:36 +0100 |
---|---|---|
committer | Julia Koval <jkoval@gcc.gnu.org> | 2018-03-15 08:52:36 +0100 |
commit | c36b04c1461c2825f30760043fb216237d07ce39 (patch) | |
tree | 018a85fcb4446503b229cce972817d20c95714f5 /gcc | |
parent | 9bb45a958d5281b3979f538a05ffa80c6833c4f7 (diff) | |
download | gcc-c36b04c1461c2825f30760043fb216237d07ce39.zip gcc-c36b04c1461c2825f30760043fb216237d07ce39.tar.gz gcc-c36b04c1461c2825f30760043fb216237d07ce39.tar.bz2 |
Add builtin_cpu for cannonlake and new isa features.
gcc/
* config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ,
F_AVX512VNNI, F_AVX512BITALG): New.
gcc/testsuite/
* gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add
cannonlake.
(check_features): Add avx512vbmi2, gfni, vpclmulqdq, avx512vnni,
avx512bitalg.
libgcc/
* config/i386/cpuinfo.c (get_available_features): Add
FEATURE_AVX512VBMI2, FEATURE_GFNI, FEATURE_VPCLMULQDQ,
FEATURE_AVX512VNNI, FEATURE_AVX512BITALG.
* config/i386/cpuinfo.h (processor_features) Add
FEATURE_AVX512VBMI2, FEATURE_GFNI, FEATURE_VPCLMULQDQ,
FEATURE_AVX512VNNI, FEATURE_AVX512BITALG.
From-SVN: r258551
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/builtin_target.c | 14 |
4 files changed, 37 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea4b664..b4dde6e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-03-15 Julia Koval <julia.koval@intel.com> + + * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, + F_AVX512VNNI, F_AVX512BITALG): New. + 2018-03-14 John David Anglin <danglin@gcc.gnu.org> PR target/83451 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a87e5d5..1b57cc6 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -33086,6 +33086,11 @@ fold_builtin_cpu (tree fndecl, tree *args) F_AVX5124VNNIW, F_AVX5124FMAPS, F_AVX512VPOPCNTDQ, + F_AVX512VBMI2, + F_GFNI, + F_VPCLMULQDQ, + F_AVX512VNNI, + F_AVX512BITALG, F_MAX }; @@ -33210,7 +33215,12 @@ fold_builtin_cpu (tree fndecl, tree *args) {"avx512ifma",F_AVX512IFMA}, {"avx5124vnniw",F_AVX5124VNNIW}, {"avx5124fmaps",F_AVX5124FMAPS}, - {"avx512vpopcntdq",F_AVX512VPOPCNTDQ} + {"avx512vpopcntdq",F_AVX512VPOPCNTDQ}, + {"avx512vbmi2", F_AVX512VBMI2}, + {"gfni", F_GFNI}, + {"vpclmulqdq", F_VPCLMULQDQ}, + {"avx512vnni", F_AVX512VNNI}, + {"avx512bitalg", F_AVX512BITALG} }; tree __processor_model_type = build_processor_model_struct (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b2da077..4962ff5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2018-03-15 Julia Koval <julia.koval@intel.com> + + * gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add + cannonlake. + (check_features): Add avx512vbmi2, gfni, vpclmulqdq, avx512vnni, + avx512bitalg. + 2018-03-15 Jakub Jelinek <jakub@redhat.com> PR c/84853 diff --git a/gcc/testsuite/gcc.target/i386/builtin_target.c b/gcc/testsuite/gcc.target/i386/builtin_target.c index 8fa9797..869bd94 100644 --- a/gcc/testsuite/gcc.target/i386/builtin_target.c +++ b/gcc/testsuite/gcc.target/i386/builtin_target.c @@ -103,6 +103,10 @@ check_intel_cpu_model (unsigned int family, unsigned int model, assert (__builtin_cpu_is ("corei7")); assert (__builtin_cpu_is ("skylake-avx512")); break; + case 0x66: + /* Cannon Lake. */ + assert (__builtin_cpu_is ("cannonlake")); + break; case 0x17: case 0x1d: /* Penryn. */ @@ -228,6 +232,16 @@ check_features (unsigned int ecx, unsigned int edx, assert (__builtin_cpu_supports ("avx512ifma")); if (ecx & bit_AVX512VBMI) assert (__builtin_cpu_supports ("avx512vbmi")); + if (ecx & bit_AVX512VBMI2) + assert (__builtin_cpu_supports ("avx512vbmi2")); + if (ecx & bit_GFNI) + assert (__builtin_cpu_supports ("gfni")); + if (ecx & bit_VPCLMULQDQ) + assert (__builtin_cpu_supports ("vpclmulqdq")); + if (ecx & bit_AVX512VNNI) + assert (__builtin_cpu_supports ("avx512vnni")); + if (ecx & bit_AVX512BITALG) + assert (__builtin_cpu_supports ("avx512bitalg")); if (ecx & bit_AVX512VPOPCNTDQ) assert (__builtin_cpu_supports ("avx512vpopcntdq")); if (edx & bit_AVX5124VNNIW) |