summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-04-06 16:29:31 +0000
committerCraig Topper <craig.topper@intel.com>2018-04-06 16:29:31 +0000
commitb9d298ecf23ed9dcc0daa8a32e2b7d894aee1f98 (patch)
treede72d30be573c87be9d8c91aad2d70f6bad51eb3 /llvm/lib
parentf0d042619b0411bf2c211e61a3dbd3ea0ceb7c49 (diff)
downloadbcm5719-llvm-b9d298ecf23ed9dcc0daa8a32e2b7d894aee1f98.tar.gz
bcm5719-llvm-b9d298ecf23ed9dcc0daa8a32e2b7d894aee1f98.zip
[X86] Remove InstRWs for basic arithmetic instructions from Sandy Bridge scheduler model.
We can get this right through WriteALU and friends now. llvm-svn: 329417
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86SchedSandyBridge.td68
1 files changed, 4 insertions, 64 deletions
diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td
index 395003630f9..9babb1464aa 100644
--- a/llvm/lib/Target/X86/X86SchedSandyBridge.td
+++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td
@@ -488,50 +488,20 @@ def SBWriteResGroup6 : SchedWriteRes<[SBPort015]> {
let ResourceCycles = [1];
}
def: InstRW<[SBWriteResGroup6], (instrs CBW, CWDE, CDQE)>;
-def: InstRW<[SBWriteResGroup6], (instregex "ADD(8|16|32|64)ri",
- "ADD(8|16|32|64)rr",
- "ADD(8|16|32|64)i",
- "AND(8|16|32|64)ri",
- "AND(8|16|32|64)rr",
- "AND(8|16|32|64)i",
- "CMC",
- "CMP(8|16|32|64)ri",
- "CMP(8|16|32|64)rr",
- "CMP(8|16|32|64)i",
- "DEC(8|16|32|64)r",
- "INC(8|16|32|64)r",
+def: InstRW<[SBWriteResGroup6], (instregex "CMC",
"MMX_MOVD64from64rr",
"MMX_MOVQ2DQrr",
"MOV(8|16|32|64)rr",
"MOV(8|16|32|64)ri",
"MOVDQArr",
"MOVDQUrr",
- "MOVSX(16|32|64)rr16",
- "MOVSX(16|32|64)rr32",
- "MOVSX(16|32|64)rr8",
- "MOVZX(16|32|64)rr16",
- "MOVZX(16|32|64)rr8",
- "NEG(8|16|32|64)r",
- "NOT(8|16|32|64)r",
- "OR(8|16|32|64)ri",
- "OR(8|16|32|64)rr",
- "OR(8|16|32|64)i",
"STC",
- "SUB(8|16|32|64)ri",
- "SUB(8|16|32|64)rr",
- "SUB(8|16|32|64)i",
- "TEST(8|16|32|64)rr",
- "TEST(8|16|32|64)i",
- "TEST(8|16|32|64)ri",
"(V?)MOVPQI2QIrr",
"(V?)MOVZPQILo2PQIrr",
"(V?)PANDNrr",
"(V?)PANDrr",
"(V?)PORrr",
- "(V?)PXORrr",
- "XOR(8|16|32|64)ri",
- "XOR(8|16|32|64)rr",
- "XOR(8|16|32|64)i")>;
+ "(V?)PXORrr")>;
def SBWriteResGroup7 : SchedWriteRes<[SBPort0]> {
let Latency = 2;
@@ -1117,18 +1087,8 @@ def SBWriteResGroup52 : SchedWriteRes<[SBPort23,SBPort015]> {
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[SBWriteResGroup52], (instregex "ADD(8|16|32|64)rm",
- "AND(8|16|32|64)rm",
- "CMP(8|16|32|64)mi",
- "CMP(8|16|32|64)mr",
- "CMP(8|16|32|64)rm",
- "LODSL",
- "LODSQ",
- "OR(8|16|32|64)rm",
- "SUB(8|16|32|64)rm",
- "TEST(8|16|32|64)mr",
- "TEST(8|16|32|64)mi",
- "XOR(8|16|32|64)rm")>;
+def: InstRW<[SBWriteResGroup52], (instregex "LODSL",
+ "LODSQ")>;
def SBWriteResGroup53 : SchedWriteRes<[SBPort4,SBPort23]> {
let Latency = 6;
@@ -1379,26 +1339,6 @@ def: InstRW<[SBWriteResGroup69], (instregex "BTC(16|32|64)mi8",
"SHR(8|16|32|64)m1",
"SHR(8|16|32|64)mi")>;
-def SBWriteResGroup70 : SchedWriteRes<[SBPort4,SBPort23,SBPort015]> {
- let Latency = 7;
- let NumMicroOps = 4;
- let ResourceCycles = [1,2,1];
-}
-def: InstRW<[SBWriteResGroup70], (instregex "ADD(8|16|32|64)mi",
- "ADD(8|16|32|64)mr",
- "AND(8|16|32|64)mi",
- "AND(8|16|32|64)mr",
- "DEC(8|16|32|64)m",
- "INC(8|16|32|64)m",
- "NEG(8|16|32|64)m",
- "NOT(8|16|32|64)m",
- "OR(8|16|32|64)mi",
- "OR(8|16|32|64)mr",
- "SUB(8|16|32|64)mi",
- "SUB(8|16|32|64)mr",
- "XOR(8|16|32|64)mi",
- "XOR(8|16|32|64)mr")>;
-
def SBWriteResGroup71 : SchedWriteRes<[SBPort0,SBPort23]> {
let Latency = 8;
let NumMicroOps = 2;
OpenPOWER on IntegriCloud