forked from OSchip/llvm-project
[X86] Add 'FeatureSlowSHLD' to cpu 'bdver3'. Also explicit set FeatureAVX and FeatureSSE4A for all the bdver* cpus.
This patch adds 'FeatureSlowSHLD' to 'bdver3'. According to the official AMD optimization guide for amdfam15: "Using alternative code in place of SHLD achieves lower overall latency and requires fewer execution resources. The 32-bit and 64-bit forms of ADD, ADC, SHR, and LEA (except 16-bit form) are DirectPath instructions, while SHLD is a VectorPath instruction." This patch also explicitly sets feature AVX and SSE4A for all the bdver* cpus. This part of the patch is a non-functional change and it is mainly done for clarity reasons (Both XOP and FMA4 already imply AVX and SSE4A). llvm-svn: 221296
This commit is contained in:
parent
af20fae2fb
commit
f5b34e535d
|
@ -355,27 +355,30 @@ def : ProcessorModel<"btver2", BtVer2Model,
|
||||||
// Bulldozer
|
// Bulldozer
|
||||||
def : Proc<"bdver1", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
|
def : Proc<"bdver1", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
|
||||||
FeatureAES, FeaturePRFCHW, FeaturePCLMUL,
|
FeatureAES, FeaturePRFCHW, FeaturePCLMUL,
|
||||||
FeatureLZCNT, FeaturePOPCNT, FeatureSlowSHLD]>;
|
FeatureAVX, FeatureSSE4A, FeatureLZCNT,
|
||||||
|
FeaturePOPCNT, FeatureSlowSHLD]>;
|
||||||
// Piledriver
|
// Piledriver
|
||||||
def : Proc<"bdver2", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
|
def : Proc<"bdver2", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
|
||||||
FeatureAES, FeaturePRFCHW, FeaturePCLMUL,
|
FeatureAES, FeaturePRFCHW, FeaturePCLMUL,
|
||||||
FeatureF16C, FeatureLZCNT,
|
FeatureAVX, FeatureSSE4A, FeatureF16C,
|
||||||
FeaturePOPCNT, FeatureBMI, FeatureTBM,
|
FeatureLZCNT, FeaturePOPCNT, FeatureBMI,
|
||||||
FeatureFMA, FeatureSlowSHLD]>;
|
FeatureTBM, FeatureFMA, FeatureSlowSHLD]>;
|
||||||
|
|
||||||
// Steamroller
|
// Steamroller
|
||||||
def : Proc<"bdver3", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
|
def : Proc<"bdver3", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
|
||||||
FeatureAES, FeaturePRFCHW, FeaturePCLMUL,
|
FeatureAES, FeaturePRFCHW, FeaturePCLMUL,
|
||||||
FeatureF16C, FeatureLZCNT,
|
FeatureAVX, FeatureSSE4A, FeatureF16C,
|
||||||
FeaturePOPCNT, FeatureBMI, FeatureTBM,
|
FeatureLZCNT, FeaturePOPCNT, FeatureBMI,
|
||||||
FeatureFMA, FeatureFSGSBase]>;
|
FeatureTBM, FeatureFMA, FeatureSlowSHLD,
|
||||||
|
FeatureFSGSBase]>;
|
||||||
|
|
||||||
// Excavator
|
// Excavator
|
||||||
def : Proc<"bdver4", [FeatureAVX2, FeatureXOP, FeatureFMA4,
|
def : Proc<"bdver4", [FeatureAVX2, FeatureXOP, FeatureFMA4,
|
||||||
FeatureCMPXCHG16B, FeatureAES, FeaturePRFCHW,
|
FeatureCMPXCHG16B, FeatureAES, FeaturePRFCHW,
|
||||||
FeaturePCLMUL, FeatureF16C, FeatureLZCNT,
|
FeaturePCLMUL, FeatureF16C, FeatureLZCNT,
|
||||||
FeaturePOPCNT, FeatureBMI, FeatureBMI2,
|
FeaturePOPCNT, FeatureBMI, FeatureBMI2,
|
||||||
FeatureTBM, FeatureFMA, FeatureFSGSBase]>;
|
FeatureTBM, FeatureFMA, FeatureSSE4A,
|
||||||
|
FeatureFSGSBase]>;
|
||||||
|
|
||||||
def : Proc<"geode", [Feature3DNowA]>;
|
def : Proc<"geode", [Feature3DNowA]>;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue