[PATCH] D48878: [X86][BtVer2][NFC] Regexify zero-idioms

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 3 06:36:04 PDT 2018


lebedev.ri created this revision.
lebedev.ri added a reviewer: RKSimon.
Herald added a subscriber: llvm-commits.

Repository:
  rL LLVM

https://reviews.llvm.org/D48878

Files:
  lib/Target/X86/X86ScheduleBtVer2.td


Index: lib/Target/X86/X86ScheduleBtVer2.td
===================================================================
--- lib/Target/X86/X86ScheduleBtVer2.td
+++ lib/Target/X86/X86ScheduleBtVer2.td
@@ -609,57 +609,36 @@
     SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [JWriteZeroLatency]>,
     SchedVar<MCSchedPredicate<TruePred>,           [WriteALU]>
 ]>;
-def : InstRW<[JWriteZeroIdiom], (instrs SUB32rr, SUB64rr,
-                                        XOR32rr, XOR64rr)>;
+def : InstRW<[JWriteZeroIdiom], (instregex "(SUB|XOR)(32|64)rr")>;
 
 def JWriteFZeroIdiom : SchedWriteVariant<[
     SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [JWriteZeroLatency]>,
     SchedVar<MCSchedPredicate<TruePred>,           [WriteFLogic]>
 ]>;
-def : InstRW<[JWriteFZeroIdiom], (instrs XORPSrr, VXORPSrr, XORPDrr, VXORPDrr,
-                                         ANDNPSrr, VANDNPSrr,
-                                         ANDNPDrr, VANDNPDrr)>;
+def : InstRW<[JWriteFZeroIdiom], (instregex "(V?)(XOR|ANDN)P(S|D)rr")>;
 
 def JWriteVZeroIdiomLogic : SchedWriteVariant<[
     SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [JWriteZeroLatency]>,
     SchedVar<MCSchedPredicate<TruePred>,           [WriteVecLogic]>
 ]>;
-def : InstRW<[JWriteVZeroIdiomLogic], (instrs MMX_PXORirr, MMX_PANDNirr)>;
+def : InstRW<[JWriteVZeroIdiomLogic], (instregex "MMX_P(XOR|ANDN)irr")>;
 
 def JWriteVZeroIdiomLogicX : SchedWriteVariant<[
     SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [JWriteZeroLatency]>,
     SchedVar<MCSchedPredicate<TruePred>,           [WriteVecLogicX]>
 ]>;
-def : InstRW<[JWriteVZeroIdiomLogicX], (instrs PXORrr, VPXORrr,
-                                               PANDNrr, VPANDNrr)>;
+def : InstRW<[JWriteVZeroIdiomLogicX], (instregex "(V?)P(XOR|ANDN)rr")>;
 
 def JWriteVZeroIdiomALU : SchedWriteVariant<[
     SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [JWriteZeroLatency]>,
     SchedVar<MCSchedPredicate<TruePred>,           [WriteVecALU]>
 ]>;
-def : InstRW<[JWriteVZeroIdiomALU], (instrs MMX_PSUBBirr, MMX_PSUBDirr,
-                                            MMX_PSUBQirr, MMX_PSUBWirr,
-                                            MMX_PCMPEQBirr,
-                                            MMX_PCMPEQDirr,
-                                            MMX_PCMPEQWirr,
-                                            MMX_PCMPGTBirr,
-                                            MMX_PCMPGTDirr,
-                                            MMX_PCMPGTWirr)>;
+def : InstRW<[JWriteVZeroIdiomALU],  (instregex "MMX_P(SUB(B|D|Q|W)|(CMP(EQ|GT)(B|D|W)))irr")>;
 
 def JWriteVZeroIdiomALUX : SchedWriteVariant<[
     SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [JWriteZeroLatency]>,
     SchedVar<MCSchedPredicate<TruePred>,           [WriteVecALUX]>
 ]>;
-def : InstRW<[JWriteVZeroIdiomALUX], (instrs PSUBBrr, VPSUBBrr,
-                                             PSUBDrr, VPSUBDrr,
-                                             PSUBQrr, VPSUBQrr,
-                                             PSUBWrr, VPSUBWrr,
-                                             PCMPEQBrr, VPCMPEQBrr,
-                                             PCMPEQDrr, VPCMPEQDrr,
-                                             PCMPEQQrr, VPCMPEQQrr,
-                                             PCMPEQWrr, VPCMPEQWrr,
-                                             PCMPGTBrr, VPCMPGTBrr,
-                                             PCMPGTDrr, VPCMPGTDrr,
-                                             PCMPGTQrr, VPCMPGTQrr,
-                                             PCMPGTWrr, VPCMPGTWrr)>;
+def : InstRW<[JWriteVZeroIdiomALUX], (instregex "(V?)P(SUB(B|D|Q|W)|(CMP(EQ|GT)(B|D|Q|W)))rr")>;
+
 } // SchedModel


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48878.153904.patch
Type: text/x-patch
Size: 3709 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180703/be63c4c6/attachment.bin>


More information about the llvm-commits mailing list