[PATCH] D33203: Add scheduler classes to integer/float horizontal operations

Gadi Haber via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 6 02:12:26 PDT 2017


gadi.haber added inline comments.


================
Comment at: lib/Target/X86/X86SchedHaswell.td:1530
+// v <- v,v.
+def : InstRW<[WritePHAdd], (instregex "MMX_PHADD(W?)rr64",
                                "MMX_PHADDSWrr64",
----------------
Please see the accurate modeling I added for these instrs in https://reviews.llvm.org/D33897



================
Comment at: lib/Target/X86/X86SchedHaswell.td:1538
 // v <- v,m.
-def WritePHADDSUBm : SchedWriteRes<[HWPort1, HWPort5, HWPort23]> {
-  let Latency = 6;
-  let NumMicroOps = 3;
-  let ResourceCycles = [1, 2, 1];
-}
-def : InstRW<[WritePHADDSUBm, ReadAfterLd],
+def : InstRW<[WritePHAddLd, ReadAfterLd],
                               (instregex "MMX_PHADD(W?)rm64",
----------------
Please see the accurate modeling I added for these instrs in https://reviews.llvm.org/D33897



================
Comment at: lib/Target/X86/X86SchedHaswell.td:1901
 // x,x / v,v,v.
-def WriteHADDSUBPr : SchedWriteRes<[HWPort1, HWPort5]> {
-  let Latency = 5;
-  let NumMicroOps = 3;
-  let ResourceCycles = [1, 2];
-}
-def : InstRW<[WriteHADDSUBPr], (instregex "(V?)H(ADD|SUB)P(S|D)(Y?)rr")>;
-
+def : InstRW<[WriteHAdd], (instregex "(V?)H(ADD|SUB)P(S|D)(Y?)rr")>;
 // x,m / v,v,m.
----------------
Please see the accurate modeling I added for these instrs in https://reviews.llvm.org/D33897



================
Comment at: lib/Target/X86/X86SchedHaswell.td:1903
 // x,m / v,v,m.
-def WriteHADDSUBPm : SchedWriteRes<[HWPort1, HWPort5, HWPort23]> {
-  let Latency = 9;
-  let NumMicroOps = 4;
-  let ResourceCycles = [1, 2, 1];
-}
-def : InstRW<[WriteHADDSUBPm], (instregex "(V?)H(ADD|SUB)P(S|D)(Y?)rm")>;
+def : InstRW<[WriteHAddLd], (instregex "(V?)H(ADD|SUB)P(S|D)(Y?)rm")>;
 
----------------
Please see the accurate modeling I added for these instrs in https://reviews.llvm.org/D33897



https://reviews.llvm.org/D33203





More information about the llvm-commits mailing list