mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
[X86] Support -march=rocketlake
Reviewed By: skan, craig.topper, MaskRay Differential Revision: https://reviews.llvm.org/D100085
This commit is contained in:
parent
3b34c914bc
commit
63f931ee5f
@ -88,6 +88,7 @@ X86_CPU_SUBTYPE(INTEL_COREI7_COOPERLAKE, "cooperlake")
|
|||||||
X86_CPU_SUBTYPE(INTEL_COREI7_SAPPHIRERAPIDS, "sapphirerapids")
|
X86_CPU_SUBTYPE(INTEL_COREI7_SAPPHIRERAPIDS, "sapphirerapids")
|
||||||
X86_CPU_SUBTYPE(INTEL_COREI7_ALDERLAKE, "alderlake")
|
X86_CPU_SUBTYPE(INTEL_COREI7_ALDERLAKE, "alderlake")
|
||||||
X86_CPU_SUBTYPE(AMDFAM19H_ZNVER3, "znver3")
|
X86_CPU_SUBTYPE(AMDFAM19H_ZNVER3, "znver3")
|
||||||
|
X86_CPU_SUBTYPE(INTEL_COREI7_ROCKETLAKE, "rocketlake")
|
||||||
#undef X86_CPU_SUBTYPE
|
#undef X86_CPU_SUBTYPE
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ enum CPUKind {
|
|||||||
CK_Cooperlake,
|
CK_Cooperlake,
|
||||||
CK_Cannonlake,
|
CK_Cannonlake,
|
||||||
CK_IcelakeClient,
|
CK_IcelakeClient,
|
||||||
|
CK_Rocketlake,
|
||||||
CK_IcelakeServer,
|
CK_IcelakeServer,
|
||||||
CK_Tigerlake,
|
CK_Tigerlake,
|
||||||
CK_SapphireRapids,
|
CK_SapphireRapids,
|
||||||
|
@ -708,6 +708,13 @@ getIntelProcessorTypeAndSubtype(unsigned Family, unsigned Model,
|
|||||||
*Subtype = X86::INTEL_COREI7_SKYLAKE;
|
*Subtype = X86::INTEL_COREI7_SKYLAKE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Rocketlake:
|
||||||
|
case 0xa7:
|
||||||
|
CPU = "rocketlake";
|
||||||
|
*Type = X86::INTEL_COREI7;
|
||||||
|
*Subtype = X86::INTEL_COREI7_ROCKETLAKE;
|
||||||
|
break;
|
||||||
|
|
||||||
// Skylake Xeon:
|
// Skylake Xeon:
|
||||||
case 0x55:
|
case 0x55:
|
||||||
*Type = X86::INTEL_COREI7;
|
*Type = X86::INTEL_COREI7;
|
||||||
|
@ -194,6 +194,7 @@ constexpr FeatureBitset FeaturesICLClient =
|
|||||||
FeaturesCannonlake | FeatureAVX512BITALG | FeatureAVX512VBMI2 |
|
FeaturesCannonlake | FeatureAVX512BITALG | FeatureAVX512VBMI2 |
|
||||||
FeatureAVX512VNNI | FeatureAVX512VPOPCNTDQ | FeatureGFNI | FeatureRDPID |
|
FeatureAVX512VNNI | FeatureAVX512VPOPCNTDQ | FeatureGFNI | FeatureRDPID |
|
||||||
FeatureVAES | FeatureVPCLMULQDQ;
|
FeatureVAES | FeatureVPCLMULQDQ;
|
||||||
|
constexpr FeatureBitset FeaturesRocketlake = FeaturesICLClient & ~FeatureSGX;
|
||||||
constexpr FeatureBitset FeaturesICLServer =
|
constexpr FeatureBitset FeaturesICLServer =
|
||||||
FeaturesICLClient | FeatureCLWB | FeaturePCONFIG | FeatureWBNOINVD;
|
FeaturesICLClient | FeatureCLWB | FeaturePCONFIG | FeatureWBNOINVD;
|
||||||
constexpr FeatureBitset FeaturesTigerlake =
|
constexpr FeatureBitset FeaturesTigerlake =
|
||||||
@ -356,6 +357,8 @@ constexpr ProcInfo Processors[] = {
|
|||||||
{ {"cannonlake"}, CK_Cannonlake, FEATURE_AVX512VBMI, FeaturesCannonlake },
|
{ {"cannonlake"}, CK_Cannonlake, FEATURE_AVX512VBMI, FeaturesCannonlake },
|
||||||
// Icelake client microarchitecture based processors.
|
// Icelake client microarchitecture based processors.
|
||||||
{ {"icelake-client"}, CK_IcelakeClient, FEATURE_AVX512VBMI2, FeaturesICLClient },
|
{ {"icelake-client"}, CK_IcelakeClient, FEATURE_AVX512VBMI2, FeaturesICLClient },
|
||||||
|
// Rocketlake microarchitecture based processors.
|
||||||
|
{ {"rocketlake"}, CK_Rocketlake, FEATURE_AVX512VBMI2, FeaturesRocketlake },
|
||||||
// Icelake server microarchitecture based processors.
|
// Icelake server microarchitecture based processors.
|
||||||
{ {"icelake-server"}, CK_IcelakeServer, FEATURE_AVX512VBMI2, FeaturesICLServer },
|
{ {"icelake-server"}, CK_IcelakeServer, FEATURE_AVX512VBMI2, FeaturesICLServer },
|
||||||
// Tigerlake microarchitecture based processors.
|
// Tigerlake microarchitecture based processors.
|
||||||
|
@ -653,8 +653,7 @@ def ProcessorFeatures {
|
|||||||
list<SubtargetFeature> SKLAdditionalFeatures = [FeatureAES,
|
list<SubtargetFeature> SKLAdditionalFeatures = [FeatureAES,
|
||||||
FeatureXSAVEC,
|
FeatureXSAVEC,
|
||||||
FeatureXSAVES,
|
FeatureXSAVES,
|
||||||
FeatureCLFLUSHOPT,
|
FeatureCLFLUSHOPT];
|
||||||
FeatureSGX];
|
|
||||||
list<SubtargetFeature> SKLTuning = [FeatureHasFastGather,
|
list<SubtargetFeature> SKLTuning = [FeatureHasFastGather,
|
||||||
FeatureMacroFusion,
|
FeatureMacroFusion,
|
||||||
FeatureSlow3OpsLEA,
|
FeatureSlow3OpsLEA,
|
||||||
@ -754,7 +753,7 @@ def ProcessorFeatures {
|
|||||||
list<SubtargetFeature> ICXFeatures =
|
list<SubtargetFeature> ICXFeatures =
|
||||||
!listconcat(ICLFeatures, ICXAdditionalFeatures);
|
!listconcat(ICLFeatures, ICXAdditionalFeatures);
|
||||||
|
|
||||||
//Tigerlake
|
// Tigerlake
|
||||||
list<SubtargetFeature> TGLAdditionalFeatures = [FeatureVP2INTERSECT,
|
list<SubtargetFeature> TGLAdditionalFeatures = [FeatureVP2INTERSECT,
|
||||||
FeatureCLWB,
|
FeatureCLWB,
|
||||||
FeatureMOVDIRI,
|
FeatureMOVDIRI,
|
||||||
@ -764,7 +763,7 @@ def ProcessorFeatures {
|
|||||||
list<SubtargetFeature> TGLFeatures =
|
list<SubtargetFeature> TGLFeatures =
|
||||||
!listconcat(ICLFeatures, TGLAdditionalFeatures );
|
!listconcat(ICLFeatures, TGLAdditionalFeatures );
|
||||||
|
|
||||||
//Sapphirerapids
|
// Sapphirerapids
|
||||||
list<SubtargetFeature> SPRAdditionalFeatures = [FeatureAMXTILE,
|
list<SubtargetFeature> SPRAdditionalFeatures = [FeatureAMXTILE,
|
||||||
FeatureAMXINT8,
|
FeatureAMXINT8,
|
||||||
FeatureAMXBF16,
|
FeatureAMXBF16,
|
||||||
@ -846,8 +845,7 @@ def ProcessorFeatures {
|
|||||||
|
|
||||||
// Goldmont Plus
|
// Goldmont Plus
|
||||||
list<SubtargetFeature> GLPAdditionalFeatures = [FeaturePTWRITE,
|
list<SubtargetFeature> GLPAdditionalFeatures = [FeaturePTWRITE,
|
||||||
FeatureRDPID,
|
FeatureRDPID];
|
||||||
FeatureSGX];
|
|
||||||
list<SubtargetFeature> GLPTuning = [FeatureUseGLMDivSqrtCosts,
|
list<SubtargetFeature> GLPTuning = [FeatureUseGLMDivSqrtCosts,
|
||||||
FeatureSlowTwoMemOps,
|
FeatureSlowTwoMemOps,
|
||||||
FeatureSlowLEA,
|
FeatureSlowLEA,
|
||||||
@ -1308,6 +1306,8 @@ def : ProcModel<"cannonlake", SkylakeServerModel,
|
|||||||
ProcessorFeatures.CNLFeatures, ProcessorFeatures.CNLTuning>;
|
ProcessorFeatures.CNLFeatures, ProcessorFeatures.CNLTuning>;
|
||||||
def : ProcModel<"icelake-client", SkylakeServerModel,
|
def : ProcModel<"icelake-client", SkylakeServerModel,
|
||||||
ProcessorFeatures.ICLFeatures, ProcessorFeatures.ICLTuning>;
|
ProcessorFeatures.ICLFeatures, ProcessorFeatures.ICLTuning>;
|
||||||
|
def : ProcModel<"rocketlake", SkylakeServerModel,
|
||||||
|
ProcessorFeatures.ICLFeatures, ProcessorFeatures.ICLTuning>;
|
||||||
def : ProcModel<"icelake-server", SkylakeServerModel,
|
def : ProcModel<"icelake-server", SkylakeServerModel,
|
||||||
ProcessorFeatures.ICXFeatures, ProcessorFeatures.ICXTuning>;
|
ProcessorFeatures.ICXFeatures, ProcessorFeatures.ICXTuning>;
|
||||||
def : ProcModel<"tigerlake", SkylakeServerModel,
|
def : ProcModel<"tigerlake", SkylakeServerModel,
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
; 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=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=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-client 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||||
|
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=rocketlake 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
|
; 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
|
||||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=tigerlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=tigerlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||||
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=sapphirerapids 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=sapphirerapids 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
|
||||||
|
Loading…
Reference in New Issue
Block a user