[llvm] e5120a4 - [X86] Update WriteMPSAD class and remove VMPSADBWrri override

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 13 07:20:17 PST 2022


Author: Simon Pilgrim
Date: 2022-11-13T15:19:37Z
New Revision: e5120a43d543041bd6ea3e7c6ae96d778799f07c

URL: https://github.com/llvm/llvm-project/commit/e5120a43d543041bd6ea3e7c6ae96d778799f07c
DIFF: https://github.com/llvm/llvm-project/commit/e5120a43d543041bd6ea3e7c6ae96d778799f07c.diff

LOG: [X86] Update WriteMPSAD class and remove VMPSADBWrri override

AMD 15h SoG + Agner both indicate there's no difference between MPSADBWrri + VMPSADBWrri - I can't find any data on the folded variant so I've kept the existing numbers

Removes the last X86 override for WriteMPSAD/WritePSADBW classes - removing a further 3 entries from every sched class table

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86ScheduleBdVer2.td
    llvm/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
    llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse41.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86ScheduleBdVer2.td b/llvm/lib/Target/X86/X86ScheduleBdVer2.td
index 6a91d181d320..184f4de5c71a 100644
--- a/llvm/lib/Target/X86/X86ScheduleBdVer2.td
+++ b/llvm/lib/Target/X86/X86ScheduleBdVer2.td
@@ -1150,17 +1150,12 @@ def PdWriteVPMACS : SchedWriteRes<[PdFPU0, PdFPMMA, PdFPMAL]> {
 def : InstRW<[PdWriteVPMACS], (instrs VPMACSDQHrr, VPMACSDQLrr, VPMACSSDQHrr,
                                       VPMACSSDQLrr)>;
 
-defm : PdWriteResXMMPair<WriteMPSAD,         [PdFPU0, PdFPMMA], 9, [1, 4], 8>;
+// FIXME: Investigate RR vs RM 
diff erences.
+defm : PdWriteRes<WriteMPSAD,   [PdFPU0, PdFPMMA], 8, [1, 4], 8>;
+defm : PdWriteRes<WriteMPSADLd, [PdFPU0, PdFPMMA, PdLoad], 14, [1, 4, 3],  8>;
 defm : X86WriteResPairUnsupported<WriteMPSADY>;
 defm : X86WriteResPairUnsupported<WriteMPSADZ>;
 
-def PdWriteVMPSADBW : SchedWriteRes<[PdFPU0, PdFPMMA]> {
-  let Latency = 8;
-  let ResourceCycles = [1, 4];
-  let NumMicroOps = 10;
-}
-def : InstRW<[PdWriteVMPSADBW], (instrs VMPSADBWrri)>;
-
 defm : PdWriteResXMMPair<WritePSADBW,        [PdFPU01, PdFPMAL], 4, [1, 2], 2>;
 defm : PdWriteResXMMPair<WritePSADBWX,       [PdFPU01, PdFPMAL], 4, [1, 2], 2>;
 defm : X86WriteResPairUnsupported<WritePSADBWY>;

diff  --git a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
index 36f009d67e0b..f996defeb252 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
@@ -1337,7 +1337,7 @@ vzeroupper
 # CHECK-NEXT:  2      2     1.00                        vmovups	%ymm0, %ymm2
 # CHECK-NEXT:  8      1     1.00           *            vmovups	%ymm0, (%rax)
 # CHECK-NEXT:  2      5     1.50    *                   vmovups	(%rax), %ymm2
-# CHECK-NEXT:  10     8     4.00                        vmpsadbw	$1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  8      8     4.00                        vmpsadbw	$1, %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  8      14    4.00    *                   vmpsadbw	$1, (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      5     1.00                        vmulpd	%xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  1      10    1.50    *                   vmulpd	(%rax), %xmm1, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse41.s
index cb00ddd274de..aa1decc4304f 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse41.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse41.s
@@ -172,7 +172,7 @@ roundss     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        insertps	$1, %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.50    *                   insertps	$1, (%rax), %xmm2
 # CHECK-NEXT:  1      5     2.00    *                   movntdqa	(%rax), %xmm2
-# CHECK-NEXT:  8      9     4.00                        mpsadbw	$1, %xmm0, %xmm2
+# CHECK-NEXT:  8      8     4.00                        mpsadbw	$1, %xmm0, %xmm2
 # CHECK-NEXT:  8      14    4.00    *                   mpsadbw	$1, (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        packusdw	%xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.50    *                   packusdw	(%rax), %xmm2


        


More information about the llvm-commits mailing list