[llvm] 6824cf1 - [X86] Set some more plausible latencies for horizontal add/subs on znver1

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sun May 8 07:49:02 PDT 2022


Author: Simon Pilgrim
Date: 2022-05-08T15:48:42+01:00
New Revision: 6824cf1ab7f16ba68270a5f23007c060e42ea6dc

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

LOG: [X86] Set some more plausible latencies for horizontal add/subs on znver1

These are all microcoded/multi-pipe nightmares on Ryzen, but we shouldn't just be using the WriteMicrocoded class which is for REALLY bad microcoded nightmares - instead use the same approximate latencies as znver2 (Agner and uops.info both suggest similar values) - and make sure we use the FPU defs for both

Fixes #53242

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86ScheduleZnver1.td
    llvm/lib/Target/X86/X86ScheduleZnver2.td
    llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
    llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
    llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
    llvm/test/tools/llvm-mca/X86/Znver1/resources-ssse3.s
    llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
    llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
    llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
    llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index a7e0a336fcb3..805ba115e069 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -1088,12 +1088,11 @@ def : InstRW<[WriteMicrocoded], (instregex "VPGATHER(Q|D)(Q|D)(Y?)rm")>;
 
 // HADD, HSUB PS/PD
 // PHADD|PHSUB (S) W/D.
-def : SchedAlias<WritePHAdd,    ZnWriteMicrocoded>;
-def : SchedAlias<WritePHAddLd,  ZnWriteMicrocoded>;
-def : SchedAlias<WritePHAddX,   ZnWriteMicrocoded>;
-def : SchedAlias<WritePHAddXLd, ZnWriteMicrocoded>;
-def : SchedAlias<WritePHAddY,   ZnWriteMicrocoded>;
-def : SchedAlias<WritePHAddYLd, ZnWriteMicrocoded>;
+defm : ZnWriteResFpuPair<WriteFHAdd, [], 7>;
+defm : ZnWriteResFpuPair<WriteFHAddY, [], 7>;
+defm : ZnWriteResFpuPair<WritePHAdd, [], 3>;
+defm : ZnWriteResFpuPair<WritePHAddX, [], 3>;
+defm : ZnWriteResFpuPair<WritePHAddY, [], 3>;
 
 // PCMPGTQ.
 def ZnWritePCMPGTQr : SchedWriteRes<[ZnFPU03]>;
@@ -1433,12 +1432,6 @@ def : InstRW<[ZnWriteSHA256RNDS2Ld], (instrs SHA256RNDS2rm)>;
 
 //-- Arithmetic instructions --//
 
-// HADD, HSUB PS/PD
-def : SchedAlias<WriteFHAdd,    ZnWriteMicrocoded>;
-def : SchedAlias<WriteFHAddLd,  ZnWriteMicrocoded>;
-def : SchedAlias<WriteFHAddY,   ZnWriteMicrocoded>;
-def : SchedAlias<WriteFHAddYLd, ZnWriteMicrocoded>;
-
 // VDIVPS.
 // TODO - convert to ZnWriteResFpuPair
 // y,y,y.

diff  --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 5051d4c6ae3f..4cf4d0f08a59 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -1104,11 +1104,11 @@ def : InstRW<[WriteMicrocoded], (instregex "VPGATHER(Q|D)(Q|D)(Y?)rm")>;
 
 // HADD, HSUB PS/PD
 // PHADD|PHSUB (S) W/D.
-defm : Zn2WriteResPair<WriteFHAdd, [], 7>;
-defm : Zn2WriteResPair<WriteFHAddY, [], 7>;
-defm : Zn2WriteResPair<WritePHAdd, [], 3>;
-defm : Zn2WriteResPair<WritePHAddX, [], 3>;
-defm : Zn2WriteResPair<WritePHAddY, [], 3>;
+defm : Zn2WriteResFpuPair<WriteFHAdd, [], 7>;
+defm : Zn2WriteResFpuPair<WriteFHAddY, [], 7>;
+defm : Zn2WriteResFpuPair<WritePHAdd, [], 3>;
+defm : Zn2WriteResFpuPair<WritePHAddX, [], 3>;
+defm : Zn2WriteResFpuPair<WritePHAddY, [], 3>;
 
 // PCMPGTQ.
 def Zn2WritePCMPGTQr : SchedWriteRes<[Zn2FPU03]>;

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
index 7173135e7aeb..1f10df4a1cbb 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1196,22 +1196,22 @@ vzeroupper
 # CHECK-NEXT:  2      8     0.50           *            vextractf128	$1, %ymm0, (%rax)
 # CHECK-NEXT:  2      2     2.00                        vextractps	$1, %xmm0, %ecx
 # CHECK-NEXT:  2      5     2.50           *            vextractps	$1, %xmm0, (%rax)
-# CHECK-NEXT:  1      100   0.25                        vhaddpd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vhaddpd	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vhaddpd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vhaddpd	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vhaddps	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vhaddps	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vhaddps	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vhaddps	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vhsubpd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vhsubpd	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vhsubpd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vhsubpd	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vhsubps	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vhsubps	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vhsubps	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vhsubps	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      7     0.25                        vhaddpd	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   vhaddpd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      7     0.25                        vhaddpd	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.50    *                   vhaddpd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      7     0.25                        vhaddps	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   vhaddps	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      7     0.25                        vhaddps	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.50    *                   vhaddps	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      7     0.25                        vhsubpd	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   vhsubpd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      7     0.25                        vhsubpd	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.50    *                   vhsubpd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      7     0.25                        vhsubps	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   vhsubps	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      7     0.25                        vhsubps	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.50    *                   vhsubps	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      2     0.67                        vinsertf128	$1, %xmm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      9     0.67    *                   vinsertf128	$1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     0.50                        vinsertps	$1, %xmm0, %xmm1, %xmm2
@@ -1455,20 +1455,20 @@ vzeroupper
 # CHECK-NEXT:  2      5     3.00           *            vpextrq	$1, %xmm0, (%rax)
 # CHECK-NEXT:  1      2     2.00                        vpextrw	$1, %xmm0, %ecx
 # CHECK-NEXT:  2      5     3.00           *            vpextrw	$1, %xmm0, (%rax)
-# CHECK-NEXT:  1      100   0.25                        vphaddd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vphaddd	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vphaddsw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vphaddsw	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vphaddw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vphaddw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.25                        vphaddd	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vphaddd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.25                        vphaddsw	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vphaddsw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.25                        vphaddw	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vphaddw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      4     1.00                        vphminposuw	%xmm0, %xmm2
 # CHECK-NEXT:  1      11    1.00    *                   vphminposuw	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        vphsubd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vphsubd	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vphsubsw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vphsubsw	(%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25                        vphsubw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   vphsubw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.25                        vphsubd	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vphsubd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.25                        vphsubsw	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vphsubsw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.25                        vphsubw	%xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vphsubw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpinsrb	$1, %eax, %xmm1, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   vpinsrb	$1, (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpinsrd	$1, %eax, %xmm1, %xmm2
@@ -1738,7 +1738,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 168.00 168.00  -      -      -      -      -     178.58 171.08 176.25 505.08  -
+# CHECK-NEXT: 175.00 175.00  -      -      -      -      -     178.58 171.08 176.25 505.08  -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -1909,21 +1909,21 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   2.50    -      -     vextractps	$1, %xmm0, %ecx
 # CHECK-NEXT: 2.50   2.50    -      -      -      -      -      -     0.50   2.50    -      -     vextractps	$1, %xmm0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddpd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddpd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhaddpd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddpd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddpd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhaddpd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddps	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddps	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhaddps	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddps	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhaddps	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhaddps	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubpd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubpd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhsubpd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubpd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubpd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhsubpd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubps	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubps	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhsubps	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubps	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vhsubps	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vhsubps	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67    -     0.67    -     vinsertf128	$1, %xmm0, %ymm1, %ymm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.67   0.67    -     0.67    -     vinsertf128	$1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     vinsertps	$1, %xmm0, %xmm1, %xmm2
@@ -2168,19 +2168,19 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   2.50    -      -     vpextrw	$1, %xmm0, %ecx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     1.00   4.00    -      -     vpextrw	$1, %xmm0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphaddd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddsw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddsw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphaddsw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphaddw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vphminposuw	%xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vphminposuw	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphsubd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubsw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubsw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphsubsw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphsubw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpinsrb	$1, %eax, %xmm1, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpinsrb	$1, (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpinsrd	$1, %eax, %xmm1, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
index 3d7f92fd36bd..6bd2baaa3e23 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
@@ -576,18 +576,18 @@ vpxor           (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      100   0.25    *                   vpgatherqd	%xmm0, (%rax,%ymm1,2), %xmm2
 # CHECK-NEXT:  1      100   0.25    *                   vpgatherqq	%xmm0, (%rax,%xmm1,2), %xmm2
 # CHECK-NEXT:  1      100   0.25    *                   vpgatherqq	%ymm0, (%rax,%ymm1,2), %ymm2
-# CHECK-NEXT:  1      100   0.25                        vphaddd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vphaddd	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vphaddsw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vphaddsw	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vphaddw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vphaddw	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vphsubd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vphsubd	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vphsubsw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vphsubsw	(%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25                        vphsubw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      100   0.25    *                   vphsubw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.25                        vphaddd	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vphaddd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.25                        vphaddsw	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vphaddsw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.25                        vphaddw	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vphaddw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.25                        vphsubd	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vphsubd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.25                        vphsubsw	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vphsubsw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.25                        vphsubw	%ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vphsubw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      4     1.00                        vpmaddubsw	%ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  1      11    1.00    *                   vpmaddubsw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      4     1.00                        vpmaddwd	%ymm0, %ymm1, %ymm2
@@ -778,7 +778,7 @@ vpxor           (%rax), %ymm1, %ymm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 64.00  64.00   -      -      -      -      -     73.17  75.67  85.00  43.17   -
+# CHECK-NEXT: 67.00  67.00   -      -      -      -      -     73.17  75.67  85.00  43.17   -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -899,17 +899,17 @@ vpxor           (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpgatherqq	%xmm0, (%rax,%xmm1,2), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpgatherqq	%ymm0, (%rax,%ymm1,2), %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphaddd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddsw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddsw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphaddsw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphaddw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphaddw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphsubd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubsw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubsw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphsubsw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vphsubw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     vphsubw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpmaddubsw	%ymm0, %ymm1, %ymm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vpmaddubsw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpmaddwd	%ymm0, %ymm1, %ymm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
index 8de91b63bbb3..8e05fcfc9df6 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
@@ -47,14 +47,14 @@ mwait
 # CHECK-NEXT:  1      10    1.00    *                   addsubpd	(%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        addsubps	%xmm0, %xmm2
 # CHECK-NEXT:  1      10    1.00    *                   addsubps	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        haddpd	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   haddpd	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        haddps	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   haddps	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        hsubpd	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   hsubpd	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        hsubps	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   hsubps	(%rax), %xmm2
+# CHECK-NEXT:  1      7     0.25                        haddpd	%xmm0, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   haddpd	(%rax), %xmm2
+# CHECK-NEXT:  1      7     0.25                        haddps	%xmm0, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   haddps	(%rax), %xmm2
+# CHECK-NEXT:  1      7     0.25                        hsubpd	%xmm0, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   hsubpd	(%rax), %xmm2
+# CHECK-NEXT:  1      7     0.25                        hsubps	%xmm0, %xmm2
+# CHECK-NEXT:  1      14    0.50    *                   hsubps	(%rax), %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   lddqu	(%rax), %xmm2
 # CHECK-NEXT:  1      100   0.25                  U     monitor
 # CHECK-NEXT:  1      1     0.50                        movddup	%xmm0, %xmm2
@@ -81,7 +81,7 @@ mwait
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 2.50   2.50    -      -      -      -      -     4.00   2.00   2.00    -      -
+# CHECK-NEXT: 4.50   4.50    -      -      -      -      -     4.00   2.00   2.00    -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -90,13 +90,13 @@ mwait
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     addsubps	%xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     addsubps	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     haddpd	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     haddpd	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     haddpd	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     haddps	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     haddps	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     haddps	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     hsubpd	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     hsubpd	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     hsubpd	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     hsubps	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     hsubps	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     hsubps	(%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     lddqu	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     monitor
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     movddup	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-ssse3.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-ssse3.s
index 8febb07b0660..2c76369f592e 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-ssse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-ssse3.s
@@ -122,30 +122,30 @@ psignw      (%rax), %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   palignr	$1, (%rax), %mm2
 # CHECK-NEXT:  1      1     0.25                        palignr	$1, %xmm0, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   palignr	$1, (%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        phaddd	%mm0, %mm2
-# CHECK-NEXT:  1      100   0.25    *                   phaddd	(%rax), %mm2
-# CHECK-NEXT:  1      100   0.25                        phaddd	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   phaddd	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        phaddsw	%mm0, %mm2
-# CHECK-NEXT:  1      100   0.25    *                   phaddsw	(%rax), %mm2
-# CHECK-NEXT:  1      100   0.25                        phaddsw	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   phaddsw	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        phaddw	%mm0, %mm2
-# CHECK-NEXT:  1      100   0.25    *                   phaddw	(%rax), %mm2
-# CHECK-NEXT:  1      100   0.25                        phaddw	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   phaddw	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        phsubd	%mm0, %mm2
-# CHECK-NEXT:  1      100   0.25    *                   phsubd	(%rax), %mm2
-# CHECK-NEXT:  1      100   0.25                        phsubd	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   phsubd	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        phsubsw	%mm0, %mm2
-# CHECK-NEXT:  1      100   0.25    *                   phsubsw	(%rax), %mm2
-# CHECK-NEXT:  1      100   0.25                        phsubsw	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   phsubsw	(%rax), %xmm2
-# CHECK-NEXT:  1      100   0.25                        phsubw	%mm0, %mm2
-# CHECK-NEXT:  1      100   0.25    *                   phsubw	(%rax), %mm2
-# CHECK-NEXT:  1      100   0.25                        phsubw	%xmm0, %xmm2
-# CHECK-NEXT:  1      100   0.25    *                   phsubw	(%rax), %xmm2
+# CHECK-NEXT:  1      3     0.25                        phaddd	%mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   phaddd	(%rax), %mm2
+# CHECK-NEXT:  1      3     0.25                        phaddd	%xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   phaddd	(%rax), %xmm2
+# CHECK-NEXT:  1      3     0.25                        phaddsw	%mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   phaddsw	(%rax), %mm2
+# CHECK-NEXT:  1      3     0.25                        phaddsw	%xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   phaddsw	(%rax), %xmm2
+# CHECK-NEXT:  1      3     0.25                        phaddw	%mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   phaddw	(%rax), %mm2
+# CHECK-NEXT:  1      3     0.25                        phaddw	%xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   phaddw	(%rax), %xmm2
+# CHECK-NEXT:  1      3     0.25                        phsubd	%mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   phsubd	(%rax), %mm2
+# CHECK-NEXT:  1      3     0.25                        phsubd	%xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   phsubd	(%rax), %xmm2
+# CHECK-NEXT:  1      3     0.25                        phsubsw	%mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   phsubsw	(%rax), %mm2
+# CHECK-NEXT:  1      3     0.25                        phsubsw	%xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   phsubsw	(%rax), %xmm2
+# CHECK-NEXT:  1      3     0.25                        phsubw	%mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   phsubw	(%rax), %mm2
+# CHECK-NEXT:  1      3     0.25                        phsubw	%xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   phsubw	(%rax), %xmm2
 # CHECK-NEXT:  1      4     1.00                        pmaddubsw	%mm0, %mm2
 # CHECK-NEXT:  1      11    1.00    *                   pmaddubsw	(%rax), %mm2
 # CHECK-NEXT:  1      4     1.00                        pmaddubsw	%xmm0, %xmm2
@@ -187,7 +187,7 @@ psignw      (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 10.00  10.00   -      -      -      -      -     16.00  8.00   8.00   8.00    -
+# CHECK-NEXT: 16.00  16.00   -      -      -      -      -     16.00  8.00   8.00   8.00    -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -208,29 +208,29 @@ psignw      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     palignr	$1, %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     palignr	$1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddd	%mm0, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddd	(%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phaddd	(%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddd	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddd	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phaddd	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddsw	%mm0, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddsw	(%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phaddsw	(%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddsw	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddsw	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phaddsw	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddw	%mm0, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddw	(%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phaddw	(%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddw	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phaddw	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phaddw	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubd	%mm0, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubd	(%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phsubd	(%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubd	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubd	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phsubd	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubsw	%mm0, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubsw	(%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phsubsw	(%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubsw	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubsw	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phsubsw	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubw	%mm0, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubw	(%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phsubw	(%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubw	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     phsubw	(%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     phsubw	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     pmaddubsw	%mm0, %mm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     pmaddubsw	(%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     pmaddubsw	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
index 14cd7ed5eae6..16003db96e66 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1197,21 +1197,21 @@ vzeroupper
 # CHECK-NEXT:  1      2     2.00                        vextractps	$1, %xmm0, %ecx
 # CHECK-NEXT:  2      5     2.00           *            vextractps	$1, %xmm0, (%rax)
 # CHECK-NEXT:  1      7     0.25                        vhaddpd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   vhaddpd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   vhaddpd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      7     0.25                        vhaddpd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.33    *                   vhaddpd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.33    *                   vhaddpd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      7     0.25                        vhaddps	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   vhaddps	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   vhaddps	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      7     0.25                        vhaddps	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.33    *                   vhaddps	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.33    *                   vhaddps	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      7     0.25                        vhsubpd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   vhsubpd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   vhsubpd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      7     0.25                        vhsubpd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.33    *                   vhsubpd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.33    *                   vhsubpd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      7     0.25                        vhsubps	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   vhsubps	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   vhsubps	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      7     0.25                        vhsubps	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.33    *                   vhsubps	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      14    0.33    *                   vhsubps	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      2     0.33                        vinsertf128	$1, %xmm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      9     0.33    *                   vinsertf128	$1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     0.50                        vinsertps	$1, %xmm0, %xmm1, %xmm2
@@ -1456,19 +1456,19 @@ vzeroupper
 # CHECK-NEXT:  1      2     2.00                        vpextrw	$1, %xmm0, %ecx
 # CHECK-NEXT:  2      5     3.00           *            vpextrw	$1, %xmm0, (%rax)
 # CHECK-NEXT:  1      3     0.25                        vphaddd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   vphaddd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   vphaddd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     0.25                        vphaddsw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   vphaddsw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   vphaddsw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     0.25                        vphaddw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   vphaddw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   vphaddw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      4     1.00                        vphminposuw	%xmm0, %xmm2
 # CHECK-NEXT:  1      11    1.00    *                   vphminposuw	(%rax), %xmm2
 # CHECK-NEXT:  1      3     0.25                        vphsubd	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   vphsubd	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   vphsubd	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     0.25                        vphsubsw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   vphsubsw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   vphsubsw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     0.25                        vphsubw	%xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   vphsubw	(%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   vphsubw	(%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpinsrb	$1, %eax, %xmm1, %xmm2
 # CHECK-NEXT:  1      8     0.33    *                   vpinsrb	$1, (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpinsrd	$1, %eax, %xmm1, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
index f958c1fe056a..01831f5416c9 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
@@ -577,17 +577,17 @@ vpxor           (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      100   0.25    *                   vpgatherqq	%xmm0, (%rax,%xmm1,2), %xmm2
 # CHECK-NEXT:  1      100   0.25    *                   vpgatherqq	%ymm0, (%rax,%ymm1,2), %ymm2
 # CHECK-NEXT:  1      3     0.25                        vphaddd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     0.33    *                   vphaddd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.33    *                   vphaddd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      3     0.25                        vphaddsw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     0.33    *                   vphaddsw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.33    *                   vphaddsw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      3     0.25                        vphaddw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     0.33    *                   vphaddw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.33    *                   vphaddw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      3     0.25                        vphsubd	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     0.33    *                   vphsubd	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.33    *                   vphsubd	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      3     0.25                        vphsubsw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     0.33    *                   vphsubsw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.33    *                   vphsubsw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      3     0.25                        vphsubw	%ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     0.33    *                   vphsubw	(%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.33    *                   vphsubw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      4     1.00                        vpmaddubsw	%ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  1      11    1.00    *                   vpmaddubsw	(%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      4     1.00                        vpmaddwd	%ymm0, %ymm1, %ymm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
index 5419f067df19..4c250d4b3a49 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
@@ -48,13 +48,13 @@ mwait
 # CHECK-NEXT:  1      3     1.00                        addsubps	%xmm0, %xmm2
 # CHECK-NEXT:  1      10    1.00    *                   addsubps	(%rax), %xmm2
 # CHECK-NEXT:  1      7     0.25                        haddpd	%xmm0, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   haddpd	(%rax), %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   haddpd	(%rax), %xmm2
 # CHECK-NEXT:  1      7     0.25                        haddps	%xmm0, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   haddps	(%rax), %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   haddps	(%rax), %xmm2
 # CHECK-NEXT:  1      7     0.25                        hsubpd	%xmm0, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   hsubpd	(%rax), %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   hsubpd	(%rax), %xmm2
 # CHECK-NEXT:  1      7     0.25                        hsubps	%xmm0, %xmm2
-# CHECK-NEXT:  2      11    0.33    *                   hsubps	(%rax), %xmm2
+# CHECK-NEXT:  1      14    0.33    *                   hsubps	(%rax), %xmm2
 # CHECK-NEXT:  1      8     0.33    *                   lddqu	(%rax), %xmm2
 # CHECK-NEXT:  1      100   0.25                  U     monitor
 # CHECK-NEXT:  1      1     0.50                        movddup	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s
index cdcc493b90f0..9af48dcee43f 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s
@@ -123,29 +123,29 @@ psignw      (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.25                        palignr	$1, %xmm0, %xmm2
 # CHECK-NEXT:  1      8     0.33    *                   palignr	$1, (%rax), %xmm2
 # CHECK-NEXT:  1      3     0.25                        phaddd	%mm0, %mm2
-# CHECK-NEXT:  2      7     0.33    *                   phaddd	(%rax), %mm2
+# CHECK-NEXT:  1      10    0.33    *                   phaddd	(%rax), %mm2
 # CHECK-NEXT:  1      3     0.25                        phaddd	%xmm0, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   phaddd	(%rax), %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   phaddd	(%rax), %xmm2
 # CHECK-NEXT:  1      3     0.25                        phaddsw	%mm0, %mm2
-# CHECK-NEXT:  2      7     0.33    *                   phaddsw	(%rax), %mm2
+# CHECK-NEXT:  1      10    0.33    *                   phaddsw	(%rax), %mm2
 # CHECK-NEXT:  1      3     0.25                        phaddsw	%xmm0, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   phaddsw	(%rax), %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   phaddsw	(%rax), %xmm2
 # CHECK-NEXT:  1      3     0.25                        phaddw	%mm0, %mm2
-# CHECK-NEXT:  2      7     0.33    *                   phaddw	(%rax), %mm2
+# CHECK-NEXT:  1      10    0.33    *                   phaddw	(%rax), %mm2
 # CHECK-NEXT:  1      3     0.25                        phaddw	%xmm0, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   phaddw	(%rax), %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   phaddw	(%rax), %xmm2
 # CHECK-NEXT:  1      3     0.25                        phsubd	%mm0, %mm2
-# CHECK-NEXT:  2      7     0.33    *                   phsubd	(%rax), %mm2
+# CHECK-NEXT:  1      10    0.33    *                   phsubd	(%rax), %mm2
 # CHECK-NEXT:  1      3     0.25                        phsubd	%xmm0, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   phsubd	(%rax), %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   phsubd	(%rax), %xmm2
 # CHECK-NEXT:  1      3     0.25                        phsubsw	%mm0, %mm2
-# CHECK-NEXT:  2      7     0.33    *                   phsubsw	(%rax), %mm2
+# CHECK-NEXT:  1      10    0.33    *                   phsubsw	(%rax), %mm2
 # CHECK-NEXT:  1      3     0.25                        phsubsw	%xmm0, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   phsubsw	(%rax), %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   phsubsw	(%rax), %xmm2
 # CHECK-NEXT:  1      3     0.25                        phsubw	%mm0, %mm2
-# CHECK-NEXT:  2      7     0.33    *                   phsubw	(%rax), %mm2
+# CHECK-NEXT:  1      10    0.33    *                   phsubw	(%rax), %mm2
 # CHECK-NEXT:  1      3     0.25                        phsubw	%xmm0, %xmm2
-# CHECK-NEXT:  2      7     0.33    *                   phsubw	(%rax), %xmm2
+# CHECK-NEXT:  1      10    0.33    *                   phsubw	(%rax), %xmm2
 # CHECK-NEXT:  1      4     1.00                        pmaddubsw	%mm0, %mm2
 # CHECK-NEXT:  1      11    1.00    *                   pmaddubsw	(%rax), %mm2
 # CHECK-NEXT:  1      4     1.00                        pmaddubsw	%xmm0, %xmm2


        


More information about the llvm-commits mailing list