mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-25 22:11:32 +08:00
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
This commit is contained in:
parent
9bb45a958d
commit
c36b04c146
@ -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
|
||||
|
@ -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 ();
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -1,3 +1,12 @@
|
||||
2018-03-15 Julia Koval <julia.koval@intel.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2018-03-14 Julia Koval <julia.koval@intel.com>
|
||||
|
||||
* config/i386/cpuinfo.h (processor_subtypes): Split up icelake on
|
||||
|
@ -287,6 +287,16 @@ get_available_features (unsigned int ecx, unsigned int edx,
|
||||
features |= (1 << FEATURE_AVX512IFMA);
|
||||
if (ecx & bit_AVX512VBMI)
|
||||
features |= (1 << FEATURE_AVX512VBMI);
|
||||
if (ecx & bit_AVX512VBMI2)
|
||||
features |= (1 << FEATURE_AVX512VBMI2);
|
||||
if (ecx & bit_GFNI)
|
||||
features |= (1 << FEATURE_GFNI);
|
||||
if (ecx & bit_VPCLMULQDQ)
|
||||
features |= (1 << FEATURE_VPCLMULQDQ);
|
||||
if (ecx & bit_AVX512VNNI)
|
||||
features |= (1 << FEATURE_AVX512VNNI);
|
||||
if (ecx & bit_AVX512BITALG)
|
||||
features |= (1 << FEATURE_AVX512BITALG);
|
||||
if (ecx & bit_AVX512VPOPCNTDQ)
|
||||
features |= (1 << FEATURE_AVX512VPOPCNTDQ);
|
||||
if (edx & bit_AVX5124VNNIW)
|
||||
|
@ -109,7 +109,12 @@ enum processor_features
|
||||
FEATURE_AVX512IFMA,
|
||||
FEATURE_AVX5124VNNIW,
|
||||
FEATURE_AVX5124FMAPS,
|
||||
FEATURE_AVX512VPOPCNTDQ
|
||||
FEATURE_AVX512VPOPCNTDQ,
|
||||
FEATURE_AVX512VBMI2,
|
||||
FEATURE_GFNI,
|
||||
FEATURE_VPCLMULQDQ,
|
||||
FEATURE_AVX512VNNI,
|
||||
FEATURE_AVX512BITALG
|
||||
};
|
||||
|
||||
extern struct __processor_model
|
||||
|
Loading…
x
Reference in New Issue
Block a user