[X86] Remove unnecessary MMX PACKSS/PACKUS SchedWriteRes overrides
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 30 Oct 2022 17:41:53 +0000 (17:41 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 30 Oct 2022 17:41:53 +0000 (17:41 +0000)
These overrides should now match the default WriteShuffle schedules

This also fixes a typo where we were missing load latencies for the memory folded variants

llvm/lib/Target/X86/X86ScheduleZnver1.td
llvm/lib/Target/X86/X86ScheduleZnver2.td
llvm/test/tools/llvm-mca/X86/Znver1/resources-mmx.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s

index 9d11c5e..78b3295 100644 (file)
@@ -972,25 +972,6 @@ def : InstRW<[WriteMicrocoded], (instrs FNINIT)>;
 
 //=== Integer MMX and XMM Instructions ===//
 
-// PACKSSWB/DW.
-// mm <- mm.
-def ZnWriteFPU12 : SchedWriteRes<[ZnFPU12]> ;
-def ZnWriteFPU12Y : SchedWriteRes<[ZnFPU12]> {
-  let NumMicroOps = 2;
-}
-def ZnWriteFPU12m : SchedWriteRes<[ZnAGU, ZnFPU12]> ;
-def ZnWriteFPU12Ym : SchedWriteRes<[ZnAGU, ZnFPU12]> {
-  let Latency = 8;
-  let NumMicroOps = 2;
-}
-
-def : InstRW<[ZnWriteFPU12], (instrs MMX_PACKSSDWrr,
-                                     MMX_PACKSSWBrr,
-                                     MMX_PACKUSWBrr)>;
-def : InstRW<[ZnWriteFPU12m], (instrs MMX_PACKSSDWrm,
-                                      MMX_PACKSSWBrm,
-                                      MMX_PACKUSWBrm)>;
-
 def ZnWriteFPU013 : SchedWriteRes<[ZnFPU013]> ;
 def ZnWriteFPU013Y : SchedWriteRes<[ZnFPU013]> {
   let Latency = 2;
index 7399a47..d6b0d2d 100644 (file)
@@ -993,26 +993,6 @@ def : InstRW<[WriteMicrocoded], (instrs FNINIT)>;
 
 //=== Integer MMX and XMM Instructions ===//
 
-// PACKSSWB/DW.
-// mm <- mm.
-def Zn2WriteFPU12 : SchedWriteRes<[Zn2FPU12]> ;
-def Zn2WriteFPU12Y : SchedWriteRes<[Zn2FPU12]> {
-  let Latency = 4;
-  let NumMicroOps = 2;
-}
-def Zn2WriteFPU12m : SchedWriteRes<[Zn2AGU, Zn2FPU12]> ;
-def Zn2WriteFPU12Ym : SchedWriteRes<[Zn2AGU, Zn2FPU12]> {
-  let Latency = 8;
-  let NumMicroOps = 2;
-}
-
-def : InstRW<[Zn2WriteFPU12], (instrs MMX_PACKSSDWrr,
-                                     MMX_PACKSSWBrr,
-                                     MMX_PACKUSWBrr)>;
-def : InstRW<[Zn2WriteFPU12m], (instrs MMX_PACKSSDWrm,
-                                      MMX_PACKSSWBrm,
-                                      MMX_PACKUSWBrm)>;
-
 def Zn2WriteFPU013 : SchedWriteRes<[Zn2FPU013]> ;
 def Zn2WriteFPU013Y : SchedWriteRes<[Zn2FPU013]> ;
 def Zn2WriteFPU013m : SchedWriteRes<[Zn2AGU, Zn2FPU013]> {
index 77508f5..6146210 100644 (file)
@@ -174,11 +174,11 @@ pxor        (%rax), %mm2
 # CHECK-NEXT:  1      2     1.00                        movq   %mm0, %rcx
 # CHECK-NEXT:  1      1     0.50           *            movq   %mm0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        packsswb       %mm0, %mm2
-# CHECK-NEXT:  1      1     0.50    *                   packsswb       (%rax), %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packsswb       (%rax), %mm2
 # CHECK-NEXT:  1      1     0.50                        packssdw       %mm0, %mm2
-# CHECK-NEXT:  1      1     0.50    *                   packssdw       (%rax), %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packssdw       (%rax), %mm2
 # CHECK-NEXT:  1      1     0.50                        packuswb       %mm0, %mm2
-# CHECK-NEXT:  1      1     0.50    *                   packuswb       (%rax), %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packuswb       (%rax), %mm2
 # CHECK-NEXT:  1      1     0.33                        paddb  %mm0, %mm2
 # CHECK-NEXT:  1      8     0.50    *                   paddb  (%rax), %mm2
 # CHECK-NEXT:  1      1     0.33                        paddd  %mm0, %mm2
index 96c9351..492c75f 100644 (file)
@@ -174,11 +174,11 @@ pxor        (%rax), %mm2
 # CHECK-NEXT:  1      2     1.00                        movq   %mm0, %rcx
 # CHECK-NEXT:  1      1     0.33           *            movq   %mm0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        packsswb       %mm0, %mm2
-# CHECK-NEXT:  1      1     0.50    *                   packsswb       (%rax), %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packsswb       (%rax), %mm2
 # CHECK-NEXT:  1      1     0.50                        packssdw       %mm0, %mm2
-# CHECK-NEXT:  1      1     0.50    *                   packssdw       (%rax), %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packssdw       (%rax), %mm2
 # CHECK-NEXT:  1      1     0.50                        packuswb       %mm0, %mm2
-# CHECK-NEXT:  1      1     0.50    *                   packuswb       (%rax), %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packuswb       (%rax), %mm2
 # CHECK-NEXT:  1      1     0.33                        paddb  %mm0, %mm2
 # CHECK-NEXT:  1      8     0.33    *                   paddb  (%rax), %mm2
 # CHECK-NEXT:  1      1     0.33                        paddd  %mm0, %mm2