[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