[llvm] r328194 - [X86][CLMUL] Use the default CLMUL scheduler classes directly. NFCI.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 22 06:37:30 PDT 2018
Author: rksimon
Date: Thu Mar 22 06:37:30 2018
New Revision: 328194
URL: http://llvm.org/viewvc/llvm-project?rev=328194&view=rev
Log:
[X86][CLMUL] Use the default CLMUL scheduler classes directly. NFCI.
Models were completely overriding all CLMUL instructions when the WriteCLMUL default classes could be used for exactly the same coverage.
Modified:
llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
llvm/trunk/lib/Target/X86/X86SchedHaswell.td
llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
Modified: llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedBroadwell.td?rev=328194&r1=328193&r2=328194&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedBroadwell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedBroadwell.td Thu Mar 22 06:37:30 2018
@@ -243,7 +243,7 @@ def : WriteRes<WriteAESKeyGenLd, [BWPort
}
// Carry-less multiplication instructions.
-defm : BWWriteResPair<WriteCLMul, [BWPort0, BWPort5], 7, [2, 1]>;
+defm : BWWriteResPair<WriteCLMul, [BWPort0], 5>;
// Catch-all for expensive system instructions.
def : WriteRes<WriteSystem, [BWPort0156]> { let Latency = 100; } // def WriteSystem : SchedWrite;
@@ -1518,7 +1518,6 @@ def: InstRW<[BWWriteResGroup47], (instre
"MUL_FPrST0",
"MUL_FST0r",
"MUL_FrST0",
- "PCLMULQDQrr",
"PCMPGTQrr",
"PHMINPOSUWrr",
"PMADDUBSWrr",
@@ -1534,7 +1533,6 @@ def: InstRW<[BWWriteResGroup47], (instre
"RCPSSr",
"RSQRTPSr",
"RSQRTSSr",
- "VPCLMULQDQrr",
"VPCMPGTQYrr",
"VPCMPGTQrr",
"VPHMINPOSUWrr",
@@ -2812,7 +2810,6 @@ def: InstRW<[BWWriteResGroup115], (instr
"MMX_PMULLWirm",
"MMX_PMULUDQirm",
"MMX_PSADBWirm",
- "PCLMULQDQrm",
"PCMPGTQrm",
"PHMINPOSUWrm",
"PMADDUBSWrm",
@@ -2828,7 +2825,6 @@ def: InstRW<[BWWriteResGroup115], (instr
"RCPSSm",
"RSQRTPSm",
"RSQRTSSm",
- "VPCLMULQDQrm",
"VPCMPGTQrm",
"VPHMINPOSUWrm",
"VPMADDUBSWrm",
Modified: llvm/trunk/lib/Target/X86/X86SchedHaswell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedHaswell.td?rev=328194&r1=328193&r2=328194&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedHaswell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedHaswell.td Thu Mar 22 06:37:30 2018
@@ -243,12 +243,14 @@ def : WriteRes<WriteAESKeyGenLd, [HWPort
// Carry-less multiplication instructions.
def : WriteRes<WriteCLMul, [HWPort0, HWPort5]> {
- let Latency = 7;
- let ResourceCycles = [2, 1];
+ let Latency = 11;
+ let NumMicroOps = 3;
+ let ResourceCycles = [2,1];
}
def : WriteRes<WriteCLMulLd, [HWPort0, HWPort5, HWPort23]> {
- let Latency = 7;
- let ResourceCycles = [2, 1, 1];
+ let Latency = 17;
+ let NumMicroOps = 4;
+ let ResourceCycles = [2,1,1];
}
def : WriteRes<WriteSystem, [HWPort0156]> { let Latency = 100; }
@@ -2947,13 +2949,6 @@ def HWWriteResGroup123 : SchedWriteRes<[
def: InstRW<[HWWriteResGroup123], (instregex "(V?)PCMPISTRIrr",
"(V?)PCMPISTRM128rr")>;
-def HWWriteResGroup124 : SchedWriteRes<[HWPort0,HWPort5]> {
- let Latency = 11;
- let NumMicroOps = 3;
- let ResourceCycles = [2,1];
-}
-def: InstRW<[HWWriteResGroup124], (instregex "(V?)PCLMULQDQrr")>;
-
def HWWriteResGroup125 : SchedWriteRes<[HWPort0,HWPort015]> {
let Latency = 11;
let NumMicroOps = 3;
@@ -2970,13 +2965,6 @@ def HWWriteResGroup126 : SchedWriteRes<[
def: InstRW<[HWWriteResGroup126], (instregex "(V?)PCMPISTRIrm",
"(V?)PCMPISTRM128rm")>;
-def HWWriteResGroup127 : SchedWriteRes<[HWPort0,HWPort5,HWPort23]> {
- let Latency = 17;
- let NumMicroOps = 4;
- let ResourceCycles = [2,1,1];
-}
-def: InstRW<[HWWriteResGroup127], (instregex "(V?)PCLMULQDQrm")>;
-
def HWWriteResGroup128 : SchedWriteRes<[HWPort0,HWPort23,HWPort015]> {
let Latency = 18;
let NumMicroOps = 4;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td?rev=328194&r1=328193&r2=328194&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td Thu Mar 22 06:37:30 2018
@@ -246,13 +246,15 @@ def : WriteRes<WriteAESKeyGenLd, [SKLPor
}
// Carry-less multiplication instructions.
-def : WriteRes<WriteCLMul, [SKLPort0, SKLPort5]> {
- let Latency = 7;
- let ResourceCycles = [2, 1];
+def : WriteRes<WriteCLMul, [SKLPort5]> {
+ let Latency = 6;
+ let NumMicroOps = 1;
+ let ResourceCycles = [1];
}
-def : WriteRes<WriteCLMulLd, [SKLPort0, SKLPort5, SKLPort23]> {
- let Latency = 7;
- let ResourceCycles = [2, 1, 1];
+def : WriteRes<WriteCLMulLd, [SKLPort5, SKLPort23]> {
+ let Latency = 12;
+ let NumMicroOps = 2;
+ let ResourceCycles = [1,1];
}
// Catch-all for expensive system instructions.
@@ -1703,13 +1705,6 @@ def SKLWriteResGroup65 : SchedWriteRes<[
def: InstRW<[SKLWriteResGroup65], (instregex "PUSHF16",
"PUSHF64")>;
-def SKLWriteResGroup66 : SchedWriteRes<[SKLPort5]> {
- let Latency = 6;
- let NumMicroOps = 1;
- let ResourceCycles = [1];
-}
-def: InstRW<[SKLWriteResGroup66], (instregex "(V?)PCLMULQDQrr")>;
-
def SKLWriteResGroup67 : SchedWriteRes<[SKLPort23]> {
let Latency = 6;
let NumMicroOps = 1;
@@ -3140,13 +3135,6 @@ def: InstRW<[SKLWriteResGroup157], (inst
"VSQRTPSr",
"VSQRTSSr")>;
-def SKLWriteResGroup158 : SchedWriteRes<[SKLPort5,SKLPort23]> {
- let Latency = 12;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[SKLWriteResGroup158], (instregex "(V?)PCLMULQDQrm")>;
-
def SKLWriteResGroup159 : SchedWriteRes<[SKLPort5,SKLPort01,SKLPort23]> {
let Latency = 12;
let NumMicroOps = 4;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td?rev=328194&r1=328193&r2=328194&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td Thu Mar 22 06:37:30 2018
@@ -246,13 +246,15 @@ def : WriteRes<WriteAESKeyGenLd, [SKXPor
}
// Carry-less multiplication instructions.
-def : WriteRes<WriteCLMul, [SKXPort0, SKXPort5]> {
- let Latency = 7;
- let ResourceCycles = [2, 1];
+def : WriteRes<WriteCLMul, [SKXPort5]> {
+ let Latency = 6;
+ let NumMicroOps = 1;
+ let ResourceCycles = [1];
}
-def : WriteRes<WriteCLMulLd, [SKXPort0, SKXPort5, SKXPort23]> {
- let Latency = 7;
- let ResourceCycles = [2, 1, 1];
+def : WriteRes<WriteCLMulLd, [SKXPort5, SKXPort23]> {
+ let Latency = 12;
+ let NumMicroOps = 2;
+ let ResourceCycles = [1,1];
}
// Catch-all for expensive system instructions.
@@ -2856,13 +2858,6 @@ def SKXWriteResGroup69 : SchedWriteRes<[
def: InstRW<[SKXWriteResGroup69], (instregex "PUSHF16",
"PUSHF64")>;
-def SKXWriteResGroup70 : SchedWriteRes<[SKXPort5]> {
- let Latency = 6;
- let NumMicroOps = 1;
- let ResourceCycles = [1];
-}
-def: InstRW<[SKXWriteResGroup70], (instregex "(V?)PCLMULQDQrr")>;
-
def SKXWriteResGroup71 : SchedWriteRes<[SKXPort23]> {
let Latency = 6;
let NumMicroOps = 1;
@@ -5378,13 +5373,6 @@ def: InstRW<[SKXWriteResGroup172], (inst
"VSQRTSSZr(b?)(_Int)?(k?)(z?)",
"VSQRTSSr")>;
-def SKXWriteResGroup173 : SchedWriteRes<[SKXPort5,SKXPort23]> {
- let Latency = 12;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[SKXWriteResGroup173], (instregex "(V?)PCLMULQDQrm")>;
-
def SKXWriteResGroup174 : SchedWriteRes<[SKXPort015]> {
let Latency = 12;
let NumMicroOps = 3;
More information about the llvm-commits
mailing list