[llvm] r330347 - [X86] Merge some MMX instregex
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 19 10:32:10 PDT 2018
Author: rksimon
Date: Thu Apr 19 10:32:10 2018
New Revision: 330347
URL: http://llvm.org/viewvc/llvm-project?rev=330347&view=rev
Log:
[X86] Merge some MMX instregex
There's a lot more but I'd prefer focussing on removing unnecessary InstRWs first.
Modified:
llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
llvm/trunk/lib/Target/X86/X86SchedHaswell.td
llvm/trunk/lib/Target/X86/X86SchedSandyBridge.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=330347&r1=330346&r2=330347&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedBroadwell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedBroadwell.td Thu Apr 19 10:32:10 2018
@@ -489,40 +489,19 @@ def: InstRW<[BWWriteResGroup7], (instreg
"BLSMSK(32|64)rr",
"BLSR(32|64)rr",
"LEA(16|32|64)(_32)?r",
- "MMX_PABSBrr",
- "MMX_PABSDrr",
- "MMX_PABSWrr",
- "MMX_PADDBirr",
- "MMX_PADDDirr",
- "MMX_PADDQirr",
- "MMX_PADDSBirr",
- "MMX_PADDSWirr",
- "MMX_PADDUSBirr",
- "MMX_PADDUSWirr",
- "MMX_PADDWirr",
- "MMX_PAVGBirr",
- "MMX_PAVGWirr",
- "MMX_PCMPEQBirr",
- "MMX_PCMPEQDirr",
- "MMX_PCMPEQWirr",
- "MMX_PCMPGTBirr",
- "MMX_PCMPGTDirr",
- "MMX_PCMPGTWirr",
- "MMX_PMAXSWirr",
- "MMX_PMAXUBirr",
- "MMX_PMINSWirr",
- "MMX_PMINUBirr",
- "MMX_PSIGNBrr",
- "MMX_PSIGNDrr",
- "MMX_PSIGNWrr",
- "MMX_PSUBBirr",
- "MMX_PSUBDirr",
- "MMX_PSUBQirr",
- "MMX_PSUBSBirr",
- "MMX_PSUBSWirr",
- "MMX_PSUBUSBirr",
- "MMX_PSUBUSWirr",
- "MMX_PSUBWirr",
+ "MMX_PABS(B|D|W)rr",
+ "MMX_PADD(B|D|Q|W)irr",
+ "MMX_PADDS(B|W)irr",
+ "MMX_PADDUS(B|W)irr",
+ "MMX_PAVG(B|W)irr",
+ "MMX_PCMPEQ(B|D|W)irr",
+ "MMX_PCMPGT(B|D|W)irr",
+ "MMX_P(MAX|MIN)SWirr",
+ "MMX_P(MAX|MIN)UBirr",
+ "MMX_PSIGN(B|D|W)rr",
+ "MMX_PSUB(B|D|Q|W)irr",
+ "MMX_PSUBS(B|W)irr",
+ "MMX_PSUBUS(B|W)irr",
"(V?)PABSB(Y?)rr",
"(V?)PABSD(Y?)rr",
"(V?)PABSW(Y?)rr",
@@ -891,12 +870,7 @@ def BWWriteResGroup32 : SchedWriteRes<[B
let NumMicroOps = 3;
let ResourceCycles = [2,1];
}
-def: InstRW<[BWWriteResGroup32], (instregex "MMX_PHADDDrr",
- "MMX_PHADDSWrr",
- "MMX_PHADDWrr",
- "MMX_PHSUBDrr",
- "MMX_PHSUBSWrr",
- "MMX_PHSUBWrr",
+def: InstRW<[BWWriteResGroup32], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rr",
"(V?)PHADDD(Y?)rr",
"(V?)PHADDSW(Y?)rr",
"(V?)PHADDW(Y?)rr",
@@ -1350,40 +1324,19 @@ def: InstRW<[BWWriteResGroup64], (instre
"BLSI(32|64)rm",
"BLSMSK(32|64)rm",
"BLSR(32|64)rm",
- "MMX_PABSBrm",
- "MMX_PABSDrm",
- "MMX_PABSWrm",
- "MMX_PADDBirm",
- "MMX_PADDDirm",
- "MMX_PADDQirm",
- "MMX_PADDSBirm",
- "MMX_PADDSWirm",
- "MMX_PADDUSBirm",
- "MMX_PADDUSWirm",
- "MMX_PADDWirm",
- "MMX_PAVGBirm",
- "MMX_PAVGWirm",
- "MMX_PCMPEQBirm",
- "MMX_PCMPEQDirm",
- "MMX_PCMPEQWirm",
- "MMX_PCMPGTBirm",
- "MMX_PCMPGTDirm",
- "MMX_PCMPGTWirm",
- "MMX_PMAXSWirm",
- "MMX_PMAXUBirm",
- "MMX_PMINSWirm",
- "MMX_PMINUBirm",
- "MMX_PSIGNBrm",
- "MMX_PSIGNDrm",
- "MMX_PSIGNWrm",
- "MMX_PSUBBirm",
- "MMX_PSUBDirm",
- "MMX_PSUBQirm",
- "MMX_PSUBSBirm",
- "MMX_PSUBSWirm",
- "MMX_PSUBUSBirm",
- "MMX_PSUBUSWirm",
- "MMX_PSUBWirm",
+ "MMX_PABS(B|D|W)rm",
+ "MMX_PADD(B|D|Q|W)irm",
+ "MMX_PADDS(B|W)irm",
+ "MMX_PADDUS(B|W)irm",
+ "MMX_PAVG(B|W)irm",
+ "MMX_PCMPEQ(B|D|W)irm",
+ "MMX_PCMPGT(B|D|W)irm",
+ "MMX_P(MAX|MIN)SWirm",
+ "MMX_P(MAX|MIN)UBirm",
+ "MMX_PSIGN(B|D|W)rm",
+ "MMX_PSUB(B|D|Q|W)irm",
+ "MMX_PSUBS(B|W)irm",
+ "MMX_PSUBUS(B|W)irm",
"MOVBE(16|32|64)rm",
"(V?)PABSBrm",
"(V?)PABSDrm",
@@ -1840,12 +1793,7 @@ def BWWriteResGroup96 : SchedWriteRes<[B
let NumMicroOps = 4;
let ResourceCycles = [2,1,1];
}
-def: InstRW<[BWWriteResGroup96], (instregex "MMX_PHADDDrm",
- "MMX_PHADDSWrm",
- "MMX_PHADDWrm",
- "MMX_PHSUBDrm",
- "MMX_PHSUBSWrm",
- "MMX_PHSUBWrm",
+def: InstRW<[BWWriteResGroup96], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rm",
"(V?)PHADDDrm",
"(V?)PHADDSWrm",
"(V?)PHADDWrm",
Modified: llvm/trunk/lib/Target/X86/X86SchedHaswell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedHaswell.td?rev=330347&r1=330346&r2=330347&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedHaswell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedHaswell.td Thu Apr 19 10:32:10 2018
@@ -852,40 +852,19 @@ def: InstRW<[HWWriteResGroup8], (instreg
"BLSMSK(32|64)rr",
"BLSR(32|64)rr",
"LEA(16|32|64)(_32)?r",
- "MMX_PABSBrr",
- "MMX_PABSDrr",
- "MMX_PABSWrr",
- "MMX_PADDBirr",
- "MMX_PADDDirr",
- "MMX_PADDQirr",
- "MMX_PADDSBirr",
- "MMX_PADDSWirr",
- "MMX_PADDUSBirr",
- "MMX_PADDUSWirr",
- "MMX_PADDWirr",
- "MMX_PAVGBirr",
- "MMX_PAVGWirr",
- "MMX_PCMPEQBirr",
- "MMX_PCMPEQDirr",
- "MMX_PCMPEQWirr",
- "MMX_PCMPGTBirr",
- "MMX_PCMPGTDirr",
- "MMX_PCMPGTWirr",
- "MMX_PMAXSWirr",
- "MMX_PMAXUBirr",
- "MMX_PMINSWirr",
- "MMX_PMINUBirr",
- "MMX_PSIGNBrr",
- "MMX_PSIGNDrr",
- "MMX_PSIGNWrr",
- "MMX_PSUBBirr",
- "MMX_PSUBDirr",
- "MMX_PSUBQirr",
- "MMX_PSUBSBirr",
- "MMX_PSUBSWirr",
- "MMX_PSUBUSBirr",
- "MMX_PSUBUSWirr",
- "MMX_PSUBWirr",
+ "MMX_PABS(B|D|W)rr",
+ "MMX_PADD(B|D|Q|W)irr",
+ "MMX_PADDS(B|W)irr",
+ "MMX_PADDUS(B|W)irr",
+ "MMX_PAVG(B|W)irr",
+ "MMX_PCMPEQ(B|D|W)irr",
+ "MMX_PCMPGT(B|D|W)irr",
+ "MMX_P(MAX|MIN)SWirr",
+ "MMX_P(MAX|MIN)UBirr",
+ "MMX_PSIGN(B|D|W)rr",
+ "MMX_PSUB(B|D|Q|W)irr",
+ "MMX_PSUBS(B|W)irr",
+ "MMX_PSUBUS(B|W)irr",
"(V?)PABSB(Y?)rr",
"(V?)PABSD(Y?)rr",
"(V?)PABSW(Y?)rr",
@@ -1210,40 +1189,19 @@ def: InstRW<[HWWriteResGroup16], (instre
"BLSI(32|64)rm",
"BLSMSK(32|64)rm",
"BLSR(32|64)rm",
- "MMX_PABSBrm",
- "MMX_PABSDrm",
- "MMX_PABSWrm",
- "MMX_PADDBirm",
- "MMX_PADDDirm",
- "MMX_PADDQirm",
- "MMX_PADDSBirm",
- "MMX_PADDSWirm",
- "MMX_PADDUSBirm",
- "MMX_PADDUSWirm",
- "MMX_PADDWirm",
- "MMX_PAVGBirm",
- "MMX_PAVGWirm",
- "MMX_PCMPEQBirm",
- "MMX_PCMPEQDirm",
- "MMX_PCMPEQWirm",
- "MMX_PCMPGTBirm",
- "MMX_PCMPGTDirm",
- "MMX_PCMPGTWirm",
- "MMX_PMAXSWirm",
- "MMX_PMAXUBirm",
- "MMX_PMINSWirm",
- "MMX_PMINUBirm",
- "MMX_PSIGNBrm",
- "MMX_PSIGNDrm",
- "MMX_PSIGNWrm",
- "MMX_PSUBBirm",
- "MMX_PSUBDirm",
- "MMX_PSUBQirm",
- "MMX_PSUBSBirm",
- "MMX_PSUBSWirm",
- "MMX_PSUBUSBirm",
- "MMX_PSUBUSWirm",
- "MMX_PSUBWirm",
+ "MMX_PABS(B|D|W)rm",
+ "MMX_PADD(B|D|Q|W)irm",
+ "MMX_PADDS(B|W)irm",
+ "MMX_PADDUS(B|W)irm",
+ "MMX_PAVG(B|W)irm",
+ "MMX_PCMPEQ(B|D|W)irm",
+ "MMX_PCMPGT(B|D|W)irm",
+ "MMX_P(MAX|MIN)SWirm",
+ "MMX_P(MAX|MIN)UBirm",
+ "MMX_PSIGN(B|D|W)rm",
+ "MMX_PSUB(B|D|Q|W)irm",
+ "MMX_PSUBS(B|W)irm",
+ "MMX_PSUBUS(B|W)irm",
"MOVBE(16|32|64)rm")>;
def HWWriteResGroup16_1 : SchedWriteRes<[HWPort23,HWPort15]> {
@@ -1877,12 +1835,7 @@ def HWWriteResGroup56 : SchedWriteRes<[H
let NumMicroOps = 3;
let ResourceCycles = [2,1];
}
-def: InstRW<[HWWriteResGroup56], (instregex "MMX_PHADDDrr",
- "MMX_PHADDSWrr",
- "MMX_PHADDWrr",
- "MMX_PHSUBDrr",
- "MMX_PHSUBSWrr",
- "MMX_PHSUBWrr",
+def: InstRW<[HWWriteResGroup56], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rr",
"(V?)PHADDD(Y?)rr",
"(V?)PHADDSW(Y?)rr",
"(V?)PHADDW(Y?)rr",
@@ -1972,12 +1925,7 @@ def HWWriteResGroup64 : SchedWriteRes<[H
let NumMicroOps = 4;
let ResourceCycles = [2,1,1];
}
-def: InstRW<[HWWriteResGroup64], (instregex "MMX_PHADDDrm",
- "MMX_PHADDSWrm",
- "MMX_PHADDWrm",
- "MMX_PHSUBDrm",
- "MMX_PHSUBSWrm",
- "MMX_PHSUBWrm")>;
+def: InstRW<[HWWriteResGroup64], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rm")>;
def HWWriteResGroup64_1 : SchedWriteRes<[HWPort5,HWPort23,HWPort15]> {
let Latency = 10;
Modified: llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td?rev=330347&r1=330346&r2=330347&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td Thu Apr 19 10:32:10 2018
@@ -325,14 +325,13 @@ def: InstRW<[SBWriteResGroup2], (instreg
"FFREE",
"FINCSTP",
"FNOP",
- "INSERTPSrr",
"LD_Frr",
"RETQ",
"ST_FPrr",
"ST_Frr",
"VEXTRACTF128rr",
"VINSERTF128rr",
- "VINSERTPSrr",
+ "(V?)INSERTPSrr",
"(V?)MOV64toPQIrr",
"(V?)MOVDDUP(Y?)rr",
"(V?)MOVDI2PDIrr",
@@ -381,14 +380,10 @@ def SBWriteResGroup5 : SchedWriteRes<[SB
let NumMicroOps = 1;
let ResourceCycles = [1];
}
-def: InstRW<[SBWriteResGroup5], (instregex "MMX_PABSBrr",
- "MMX_PABSDrr",
- "MMX_PABSWrr",
+def: InstRW<[SBWriteResGroup5], (instregex "MMX_PABS(B|D|W)rr",
"MMX_PADDQirr",
"MMX_PALIGNRrri",
- "MMX_PSIGNBrr",
- "MMX_PSIGNDrr",
- "MMX_PSIGNWrr",
+ "MMX_PSIGN(B|D|W)rr",
"(V?)PABSBrr",
"(V?)PABSDrr",
"(V?)PABSWrr",
@@ -685,12 +680,7 @@ def SBWriteResGroup24 : SchedWriteRes<[S
let NumMicroOps = 3;
let ResourceCycles = [3];
}
-def: InstRW<[SBWriteResGroup24], (instregex "MMX_PHADDDrr",
- "MMX_PHADDSWrr",
- "MMX_PHADDWrr",
- "MMX_PHSUBDrr",
- "MMX_PHSUBSWrr",
- "MMX_PHSUBWrr",
+def: InstRW<[SBWriteResGroup24], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rr",
"(V?)PHADDDrr",
"(V?)PHADDSWrr",
"(V?)PHADDWrr",
@@ -1012,14 +1002,10 @@ def SBWriteResGroup51 : SchedWriteRes<[S
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[SBWriteResGroup51], (instregex "MMX_PABSBrm",
- "MMX_PABSDrm",
- "MMX_PABSWrm",
+def: InstRW<[SBWriteResGroup51], (instregex "MMX_PABS(B|D|W)rm",
"MMX_PALIGNRrmi",
"MMX_PSHUFBrm",
- "MMX_PSIGNBrm",
- "MMX_PSIGNDrm",
- "MMX_PSIGNWrm")>;
+ "MMX_PSIGN(B|D|W)rm")>;
def SBWriteResGroup52 : SchedWriteRes<[SBPort23,SBPort015]> {
let Latency = 6;
@@ -1385,12 +1371,7 @@ def SBWriteResGroup80 : SchedWriteRes<[S
let NumMicroOps = 4;
let ResourceCycles = [1,3];
}
-def: InstRW<[SBWriteResGroup80], (instregex "MMX_PHADDDrm",
- "MMX_PHADDSWrm",
- "MMX_PHADDWrm",
- "MMX_PHSUBDrm",
- "MMX_PHSUBSWrm",
- "MMX_PHSUBWrm")>;
+def: InstRW<[SBWriteResGroup80], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rm")>;
def SBWriteResGroup81 : SchedWriteRes<[SBPort23,SBPort015]> {
let Latency = 8;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td?rev=330347&r1=330346&r2=330347&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td Thu Apr 19 10:32:10 2018
@@ -505,23 +505,13 @@ def SKLWriteResGroup6 : SchedWriteRes<[S
def: InstRW<[SKLWriteResGroup6], (instregex "FINCSTP",
"FNOP",
"MMX_MOVQ64rr",
- "MMX_PABSBrr",
- "MMX_PABSDrr",
- "MMX_PABSWrr",
- "MMX_PADDBirr",
- "MMX_PADDDirr",
- "MMX_PADDQirr",
- "MMX_PADDWirr",
+ "MMX_PABS(B|D|W)rr",
+ "MMX_PADD(B|D|Q|W)irr",
"MMX_PANDNirr",
"MMX_PANDirr",
"MMX_PORirr",
- "MMX_PSIGNBrr",
- "MMX_PSIGNDrr",
- "MMX_PSIGNWrr",
- "MMX_PSUBBirr",
- "MMX_PSUBDirr",
- "MMX_PSUBQirr",
- "MMX_PSUBWirr",
+ "MMX_PSIGN(B|D|W)rr",
+ "MMX_PSUB(B|D|Q|W)irr",
"MMX_PXORirr")>;
def SKLWriteResGroup7 : SchedWriteRes<[SKLPort06]> {
@@ -935,8 +925,7 @@ def SKLWriteResGroup35 : SchedWriteRes<[
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[SKLWriteResGroup35], (instregex "MMX_PHADDSWrr",
- "MMX_PHSUBSWrr")>;
+def: InstRW<[SKLWriteResGroup35], (instregex "MMX_PH(ADD|SUB)SWrr")>;
def SKLWriteResGroup36 : SchedWriteRes<[SKLPort5,SKLPort01]> {
let Latency = 3;
@@ -951,10 +940,7 @@ def SKLWriteResGroup37 : SchedWriteRes<[
let NumMicroOps = 3;
let ResourceCycles = [2,1];
}
-def: InstRW<[SKLWriteResGroup37], (instregex "MMX_PHADDDrr",
- "MMX_PHADDWrr",
- "MMX_PHSUBDrr",
- "MMX_PHSUBWrr")>;
+def: InstRW<[SKLWriteResGroup37], (instregex "MMX_PH(ADD|SUB)(D|W)rr")>;
def SKLWriteResGroup38 : SchedWriteRes<[SKLPort5,SKLPort015]> {
let Latency = 3;
@@ -1366,23 +1352,13 @@ def SKLWriteResGroup73 : SchedWriteRes<[
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[SKLWriteResGroup73], (instregex "MMX_PABSBrm",
- "MMX_PABSDrm",
- "MMX_PABSWrm",
- "MMX_PADDBirm",
- "MMX_PADDDirm",
- "MMX_PADDQirm",
- "MMX_PADDWirm",
+def: InstRW<[SKLWriteResGroup73], (instregex "MMX_PABS(B|D|W)rm",
+ "MMX_PADD(B|D|Q|W)irm",
"MMX_PANDNirm",
"MMX_PANDirm",
"MMX_PORirm",
- "MMX_PSIGNBrm",
- "MMX_PSIGNDrm",
- "MMX_PSIGNWrm",
- "MMX_PSUBBirm",
- "MMX_PSUBDirm",
- "MMX_PSUBQirm",
- "MMX_PSUBWirm",
+ "MMX_PSIGN(B|D|W)rm",
+ "MMX_PSUB(B|D|Q|W)irm",
"MMX_PXORirm")>;
def SKLWriteResGroup74 : SchedWriteRes<[SKLPort23,SKLPort06]> {
@@ -1933,18 +1909,14 @@ def SKLWriteResGroup112 : SchedWriteRes<
let NumMicroOps = 4;
let ResourceCycles = [1,2,1];
}
-def: InstRW<[SKLWriteResGroup112], (instregex "MMX_PHADDSWrm",
- "MMX_PHSUBSWrm")>;
+def: InstRW<[SKLWriteResGroup112], (instregex "MMX_PH(ADD|SUB)SWrm")>;
def SKLWriteResGroup113 : SchedWriteRes<[SKLPort5,SKLPort23,SKLPort05]> {
let Latency = 8;
let NumMicroOps = 4;
let ResourceCycles = [2,1,1];
}
-def: InstRW<[SKLWriteResGroup113], (instregex "MMX_PHADDDrm",
- "MMX_PHADDWrm",
- "MMX_PHSUBDrm",
- "MMX_PHSUBWrm")>;
+def: InstRW<[SKLWriteResGroup113], (instregex "MMX_PH(ADD|SUB)(D|W)rm")>;
def SKLWriteResGroup114 : SchedWriteRes<[SKLPort4,SKLPort5,SKLPort237,SKLPort01]> {
let Latency = 8;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td?rev=330347&r1=330346&r2=330347&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td Thu Apr 19 10:32:10 2018
@@ -411,7 +411,6 @@ def SKXWriteResGroup3 : SchedWriteRes<[S
}
def: InstRW<[SKXWriteResGroup3], (instregex "COMP_FST0r",
"COM_FST0r",
- "INSERTPSrr",
"KMOVBkr",
"KMOVDkr",
"KMOVQkr",
@@ -476,8 +475,7 @@ def: InstRW<[SKXWriteResGroup3], (instre
"UNPCKLPSrr",
"VBROADCASTI32X2Z128r",
"VBROADCASTSSrr",
- "VINSERTPSZrr",
- "VINSERTPSrr",
+ "(V?)INSERTPS(Z?)rr",
"VMOV64toPQIZrr",
"VMOV64toPQIrr",
"VMOVDDUPYrr",
@@ -968,23 +966,13 @@ def SKXWriteResGroup6 : SchedWriteRes<[S
def: InstRW<[SKXWriteResGroup6], (instregex "FINCSTP",
"FNOP",
"MMX_MOVQ64rr",
- "MMX_PABSBrr",
- "MMX_PABSDrr",
- "MMX_PABSWrr",
- "MMX_PADDBirr",
- "MMX_PADDDirr",
- "MMX_PADDQirr",
- "MMX_PADDWirr",
+ "MMX_PABS(B|D|W)rr",
+ "MMX_PADD(B|D|Q|W)irr",
"MMX_PANDNirr",
"MMX_PANDirr",
"MMX_PORirr",
- "MMX_PSIGNBrr",
- "MMX_PSIGNDrr",
- "MMX_PSIGNWrr",
- "MMX_PSUBBirr",
- "MMX_PSUBDirr",
- "MMX_PSUBQirr",
- "MMX_PSUBWirr",
+ "MMX_PSIGN(B|D|W)rr",
+ "MMX_PSUB(B|D|Q|W)irr",
"MMX_PXORirr")>;
def SKXWriteResGroup7 : SchedWriteRes<[SKXPort06]> {
@@ -1988,8 +1976,7 @@ def SKXWriteResGroup37 : SchedWriteRes<[
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[SKXWriteResGroup37], (instregex "MMX_PHADDSWrr",
- "MMX_PHSUBSWrr")>;
+def: InstRW<[SKXWriteResGroup37], (instregex "MMX_PH(ADD|SUB)SWrr")>;
def SKXWriteResGroup38 : SchedWriteRes<[SKXPort5,SKXPort01]> {
let Latency = 3;
@@ -2008,10 +1995,7 @@ def SKXWriteResGroup39 : SchedWriteRes<[
let NumMicroOps = 3;
let ResourceCycles = [2,1];
}
-def: InstRW<[SKXWriteResGroup39], (instregex "MMX_PHADDDrr",
- "MMX_PHADDWrr",
- "MMX_PHSUBDrr",
- "MMX_PHSUBWrr")>;
+def: InstRW<[SKXWriteResGroup39], (instregex "MMX_PH(ADD|SUB)(D|W)rr")>;
def SKXWriteResGroup40 : SchedWriteRes<[SKXPort5,SKXPort015]> {
let Latency = 3;
@@ -2900,23 +2884,13 @@ def SKXWriteResGroup77 : SchedWriteRes<[
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[SKXWriteResGroup77], (instregex "MMX_PABSBrm",
- "MMX_PABSDrm",
- "MMX_PABSWrm",
- "MMX_PADDBirm",
- "MMX_PADDDirm",
- "MMX_PADDQirm",
- "MMX_PADDWirm",
+def: InstRW<[SKXWriteResGroup77], (instregex "MMX_PABS(B|D|W)rm",
+ "MMX_PADD(B|D|Q|W)irm",
"MMX_PANDNirm",
"MMX_PANDirm",
"MMX_PORirm",
- "MMX_PSIGNBrm",
- "MMX_PSIGNDrm",
- "MMX_PSIGNWrm",
- "MMX_PSUBBirm",
- "MMX_PSUBDirm",
- "MMX_PSUBQirm",
- "MMX_PSUBWirm",
+ "MMX_PSIGN(B|D|W)rm",
+ "MMX_PSUB(B|D|Q|W)irm",
"MMX_PXORirm")>;
def SKXWriteResGroup78 : SchedWriteRes<[SKXPort23,SKXPort06]> {
@@ -4169,18 +4143,14 @@ def SKXWriteResGroup123 : SchedWriteRes<
let NumMicroOps = 4;
let ResourceCycles = [1,2,1];
}
-def: InstRW<[SKXWriteResGroup123], (instregex "MMX_PHADDSWrm",
- "MMX_PHSUBSWrm")>;
+def: InstRW<[SKXWriteResGroup123], (instregex "MMX_PH(ADD|SUB)SWrm")>;
def SKXWriteResGroup124 : SchedWriteRes<[SKXPort5,SKXPort23,SKXPort05]> {
let Latency = 8;
let NumMicroOps = 4;
let ResourceCycles = [2,1,1];
}
-def: InstRW<[SKXWriteResGroup124], (instregex "MMX_PHADDDrm",
- "MMX_PHADDWrm",
- "MMX_PHSUBDrm",
- "MMX_PHSUBWrm")>;
+def: InstRW<[SKXWriteResGroup124], (instregex "MMX_PH(ADD|SUB)(D|W)rm")>;
def SKXWriteResGroup125 : SchedWriteRes<[SKXPort4,SKXPort5,SKXPort237,SKXPort015]> {
let Latency = 8;
More information about the llvm-commits
mailing list