forked from OSchip/llvm-project
[X86] -march=cooperlake (llvm)
Support intel -march=cooperlake in llvm Patch by Shengchen Kan (skan) Differential Revision: https://reviews.llvm.org/D62836 llvm-svn: 362776
This commit is contained in:
parent
67f9dc60b8
commit
f8b28931a7
|
@ -111,6 +111,7 @@ X86_CPU_SUBTYPE ("k6", AMDPENTIUM_K6)
|
|||
X86_CPU_SUBTYPE ("k6-2", AMDPENTIUM_K62)
|
||||
X86_CPU_SUBTYPE ("k6-3", AMDPENTIUM_K63)
|
||||
X86_CPU_SUBTYPE ("geode", AMDPENTIUM_GEODE)
|
||||
X86_CPU_SUBTYPE ("cooperlake", INTEL_COREI7_COOPERLAKE)
|
||||
#undef X86_CPU_SUBTYPE_COMPAT
|
||||
#undef X86_CPU_SUBTYPE
|
||||
|
||||
|
@ -165,5 +166,6 @@ X86_FEATURE (65, FEATURE_ADX)
|
|||
X86_FEATURE (66, FEATURE_EM64T)
|
||||
X86_FEATURE (67, FEATURE_CLFLUSHOPT)
|
||||
X86_FEATURE (68, FEATURE_SHA)
|
||||
X86_FEATURE (69, FEATURE_AVX512BF16)
|
||||
#undef X86_FEATURE_COMPAT
|
||||
#undef X86_FEATURE
|
||||
|
|
|
@ -672,7 +672,9 @@ getIntelProcessorTypeAndSubtype(unsigned Family, unsigned Model,
|
|||
// Skylake Xeon:
|
||||
case 0x55:
|
||||
*Type = X86::INTEL_COREI7;
|
||||
if (Features2 & (1 << (X86::FEATURE_AVX512VNNI - 32)))
|
||||
if (Features3 & (1 << (X86::FEATURE_AVX512BF16 - 64)))
|
||||
*Subtype = X86::INTEL_COREI7_COOPERLAKE; // "cooperlake"
|
||||
else if (Features2 & (1 << (X86::FEATURE_AVX512VNNI - 32)))
|
||||
*Subtype = X86::INTEL_COREI7_CASCADELAKE; // "cascadelake"
|
||||
else
|
||||
*Subtype = X86::INTEL_COREI7_SKYLAKE_AVX512; // "skylake-avx512"
|
||||
|
@ -748,6 +750,12 @@ getIntelProcessorTypeAndSubtype(unsigned Family, unsigned Model,
|
|||
break;
|
||||
}
|
||||
|
||||
if (Features3 & (1 << (X86::FEATURE_AVX512BF16 - 64))) {
|
||||
*Type = X86::INTEL_COREI7;
|
||||
*Subtype = X86::INTEL_COREI7_COOPERLAKE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (Features2 & (1 << (X86::FEATURE_AVX512VNNI - 32))) {
|
||||
*Type = X86::INTEL_COREI7;
|
||||
*Subtype = X86::INTEL_COREI7_CASCADELAKE;
|
||||
|
|
|
@ -616,6 +616,15 @@ def ProcessorFeatures {
|
|||
list<SubtargetFeature> CLXFeatures =
|
||||
!listconcat(CLXInheritableFeatures, CLXSpecificFeatures);
|
||||
|
||||
// Cooperlake
|
||||
list<SubtargetFeature> CPXAdditionalFeatures = [FeatureBF16];
|
||||
list<SubtargetFeature> CPXSpecificFeatures = [FeatureHasFastGather,
|
||||
FeaturePOPCNTFalseDeps];
|
||||
list<SubtargetFeature> CPXInheritableFeatures =
|
||||
!listconcat(CLXInheritableFeatures, CPXAdditionalFeatures);
|
||||
list<SubtargetFeature> CPXFeatures =
|
||||
!listconcat(CPXInheritableFeatures, CPXSpecificFeatures);
|
||||
|
||||
// Cannonlake
|
||||
list<SubtargetFeature> CNLAdditionalFeatures = [FeatureAVX512,
|
||||
FeatureCDI,
|
||||
|
@ -1076,6 +1085,8 @@ foreach P = ["skylake-avx512", "skx"] in {
|
|||
|
||||
def : ProcessorModel<"cascadelake", SkylakeServerModel,
|
||||
ProcessorFeatures.CLXFeatures>;
|
||||
def : ProcessorModel<"cooperlake", SkylakeServerModel,
|
||||
ProcessorFeatures.CPXFeatures>;
|
||||
def : ProcessorModel<"cannonlake", SkylakeServerModel,
|
||||
ProcessorFeatures.CNLFeatures>;
|
||||
def : ProcessorModel<"icelake-client", SkylakeServerModel,
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=skx 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=cascadelake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=cooperlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=cannonlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=icelake-client 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=icelake-server 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||
|
|
Loading…
Reference in New Issue