[llvm] a744128 - [X86] Fix znver1 256-bit ALU/Logic/Blend uop counts
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 19 11:10:09 PDT 2022
Author: Simon Pilgrim
Date: 2022-08-19T19:09:39+01:00
New Revision: a7441289e2eb8ccf71c1a60b71d898069e82b22b
URL: https://github.com/llvm/llvm-project/commit/a7441289e2eb8ccf71c1a60b71d898069e82b22b
DIFF: https://github.com/llvm/llvm-project/commit/a7441289e2eb8ccf71c1a60b71d898069e82b22b.diff
LOG: [X86] Fix znver1 256-bit ALU/Logic/Blend uop counts
ymm instructions are double pumped on znver1 - noticed while trying to review size-latency costkinds numbers for D132216
Matches AMD 17h SOG / Agner / uops.info
Added:
Modified:
llvm/lib/Target/X86/X86ScheduleZnver1.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/zero-idioms.s
llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index aada3e0bd9063..85f85fbda39e4 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -298,10 +298,10 @@ defm : ZnWriteResFpuPair<WriteFBlend, [ZnFPU01], 1>;
defm : ZnWriteResFpuPair<WriteFBlendY, [ZnFPU01], 1>;
defm : X86WriteResPairUnsupported<WriteFBlendZ>;
defm : ZnWriteResFpuPair<WriteFVarBlend, [ZnFPU01], 1>;
-defm : ZnWriteResFpuPair<WriteFVarBlendY,[ZnFPU01], 1>;
+defm : ZnWriteResFpuPair<WriteFVarBlendY,[ZnFPU01], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteFVarBlendZ>;
defm : ZnWriteResFpuPair<WriteVarBlend, [ZnFPU0], 1>;
-defm : ZnWriteResFpuPair<WriteVarBlendY, [ZnFPU0], 1>;
+defm : ZnWriteResFpuPair<WriteVarBlendY, [ZnFPU0], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteVarBlendZ>;
defm : ZnWriteResFpuPair<WriteCvtSS2I, [ZnFPU3], 5>;
defm : ZnWriteResFpuPair<WriteCvtPS2I, [ZnFPU3], 5>;
@@ -332,7 +332,7 @@ defm : ZnWriteResFpuPair<WriteFRnd, [ZnFPU3], 4, [1], 1, 7, 1>; // FIXME:
defm : ZnWriteResFpuPair<WriteFRndY, [ZnFPU3], 4, [1], 1, 7, 1>; // FIXME: Should folds require 1 extra uops?
defm : X86WriteResPairUnsupported<WriteFRndZ>;
defm : ZnWriteResFpuPair<WriteFLogic, [ZnFPU], 1>;
-defm : ZnWriteResFpuPair<WriteFLogicY, [ZnFPU], 1>;
+defm : ZnWriteResFpuPair<WriteFLogicY, [ZnFPU], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteFLogicZ>;
defm : ZnWriteResFpuPair<WriteFTest, [ZnFPU12], 2, [2], 1, 7, 1>;
defm : ZnWriteResFpuPair<WriteFTestY, [ZnFPU12], 4, [4], 3, 7, 2>;
@@ -411,14 +411,14 @@ defm : ZnWriteResFpuPair<WriteVarVecShiftY, [ZnFPU1], 3, [4], 2>;
defm : X86WriteResPairUnsupported<WriteVarVecShiftZ>;
defm : ZnWriteResFpuPair<WriteVecLogic, [ZnFPU], 1>;
defm : ZnWriteResFpuPair<WriteVecLogicX, [ZnFPU], 1>;
-defm : ZnWriteResFpuPair<WriteVecLogicY, [ZnFPU], 1>;
+defm : ZnWriteResFpuPair<WriteVecLogicY, [ZnFPU], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteVecLogicZ>;
defm : ZnWriteResFpuPair<WriteVecTest, [ZnFPU12], 2, [2], 1, 7, 1>;
defm : ZnWriteResFpuPair<WriteVecTestY, [ZnFPU12], 4, [4], 3, 7, 2>;
defm : X86WriteResPairUnsupported<WriteVecTestZ>;
defm : ZnWriteResFpuPair<WriteVecALU, [ZnFPU], 1>;
defm : ZnWriteResFpuPair<WriteVecALUX, [ZnFPU], 1>;
-defm : ZnWriteResFpuPair<WriteVecALUY, [ZnFPU], 1>;
+defm : ZnWriteResFpuPair<WriteVecALUY, [ZnFPU], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteVecALUZ>;
defm : ZnWriteResFpuPair<WriteVecIMul, [ZnFPU0], 4>;
defm : ZnWriteResFpuPair<WriteVecIMulX, [ZnFPU0], 4>;
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 c6315d540106a..0bd5eac8bd49c 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1064,20 +1064,20 @@ vzeroupper
# CHECK-NEXT: 1 11 0.50 * vaeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 vandnpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vandnpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vandnpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vandnpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vandnps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vandnps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vandnps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vandnps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vandnps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vandpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vandpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vandpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vandpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vandpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vandps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vandps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vandps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vandps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vblendpd $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vblendpd $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vblendpd $11, %ymm0, %ymm1, %ymm2
@@ -1088,12 +1088,12 @@ vzeroupper
# CHECK-NEXT: 1 8 0.50 * vblendps $11, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vblendvpd %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 1.00 vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vblendvpd %ymm3, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vblendvps %xmm3, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vblendvps %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vblendvps %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vblendvps %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 1.00 vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vblendvps %ymm3, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vbroadcastf128 (%rax), %ymm2
# CHECK-NEXT: 1 8 0.50 * vbroadcastsd (%rax), %ymm2
# CHECK-NEXT: 1 8 0.50 * vbroadcastss (%rax), %xmm2
@@ -1353,12 +1353,12 @@ vzeroupper
# CHECK-NEXT: 2 10 0.50 * vmulss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vorpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vorpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vorps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpabsb %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * vpabsb (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 vpabsd %xmm0, %xmm2
@@ -1713,12 +1713,12 @@ vzeroupper
# CHECK-NEXT: 1 8 0.50 * vunpcklps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vxorpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vxorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vxorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vxorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vxorps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vxorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vxorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vxorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 100 0.25 U vzeroall
# CHECK-NEXT: 1 100 0.25 U vzeroupper
@@ -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: 175.00 175.00 - - - - - 142.58 181.08 216.25 523.08 -
+# CHECK-NEXT: 175.00 175.00 - - - - - 148.58 187.08 220.25 527.08 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1776,20 +1776,20 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vaeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandnpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandnpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandnpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vandnpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vandnpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandnps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandnps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandnps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vandnps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vandnps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vandpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vandpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vandps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vandps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vandps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vblendpd $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vblendpd $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vblendpd $11, %ymm0, %ymm1, %ymm2
@@ -1800,12 +1800,12 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vblendps $11, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vblendvpd %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vblendvps %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vblendvps %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vblendvps %ymm3, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 - 0.50 - vbroadcastf128 (%rax), %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vbroadcastsd (%rax), %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vbroadcastss (%rax), %xmm2
@@ -2065,12 +2065,12 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmulss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vorpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vorpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vorps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpabsb %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpabsb (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpabsd %xmm0, %xmm2
@@ -2425,11 +2425,11 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vunpcklps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vxorpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vxorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vxorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vxorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vxorpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vxorps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vxorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vxorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vxorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - vzeroall
# CHECK-NEXT: - - - - - - - - - - - - vzeroupper
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 820728ef2d1d6..f5a4d491dae1f 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
@@ -478,12 +478,12 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vmovntdqa (%rax), %ymm0
# CHECK-NEXT: 1 100 0.25 vmpsadbw $1, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 100 0.25 * vmpsadbw $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpabsb %ymm0, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpabsb (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.25 vpabsd %ymm0, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpabsd (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.25 vpabsw %ymm0, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpabsw (%rax), %ymm2
+# CHECK-NEXT: 2 1 0.50 vpabsb %ymm0, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpabsb (%rax), %ymm2
+# CHECK-NEXT: 2 1 0.50 vpabsd %ymm0, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpabsd (%rax), %ymm2
+# CHECK-NEXT: 2 1 0.50 vpabsw %ymm0, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpabsw (%rax), %ymm2
# CHECK-NEXT: 1 1 0.25 vpackssdw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpackssdw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpacksswb %ymm0, %ymm1, %ymm2
@@ -492,38 +492,38 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpackusdw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpackuswb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpackuswb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddusb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddusb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddusw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddusw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpaddw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpaddw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddusb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddusw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpaddw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpalignr $1, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpalignr $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpand %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpand (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpandn %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpandn (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpavgb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpavgb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpavgw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpavgw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpand %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpand (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpandn %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpandn (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpavgb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpavgw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpblendd $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 8 1.00 * vpblendd $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 1 0.50 vpblendd $11, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 9 1.50 * vpblendd $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpblendvb %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 1.00 * vpblendvb %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpblendvb %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpblendvb %ymm3, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 0.33 vpblendw $11, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 9 0.50 * vpblendw $11, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpbroadcastb %xmm0, %xmm0
@@ -542,22 +542,22 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %xmm0
# CHECK-NEXT: 1 2 0.25 vpbroadcastw %xmm0, %ymm0
# CHECK-NEXT: 2 8 2.00 * vpbroadcastw (%rax), %ymm0
-# CHECK-NEXT: 1 1 0.25 vpcmpeqb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpcmpeqb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpcmpeqd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpcmpeqd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpcmpeqq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpcmpeqq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpcmpeqw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpcmpeqw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpcmpgtb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpcmpgtb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpcmpgtd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpcmpgtd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpcmpeqb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpcmpeqb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpcmpeqd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpcmpeqd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpcmpeqq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpcmpeqq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpcmpeqw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpcmpeqw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpcmpgtb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpcmpgtb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpcmpgtd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpcmpgtd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtq %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpcmpgtw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 0.25 vperm2i128 $1, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 9 0.50 * vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 0.25 vpermd %ymm0, %ymm1, %ymm2
@@ -600,30 +600,30 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 9 1.50 * vpmaskmovq (%rax), %ymm0, %ymm2
# CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %xmm0, %xmm1, (%rax)
# CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: 1 1 0.25 vpmaxsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpmaxsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpmaxsd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpmaxsd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpmaxsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpmaxsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpmaxub %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpmaxub (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpmaxud %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpmaxud (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpmaxuw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpmaxuw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpminsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpminsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpminsd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpminsd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpminsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpminsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpminub %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpminub (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpminud %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpminud (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpminuw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpminuw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpmaxsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpmaxsd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpmaxsd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpmaxsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpmaxub %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpmaxud %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpmaxud (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpmaxuw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpminsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpminsd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpminsd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpminsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpminub %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpminud %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpminud (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpminuw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 2 2.00 vpmovmskb %ymm0, %ecx
# CHECK-NEXT: 3 1 2.00 vpmovsxbd %xmm0, %ymm2
# CHECK-NEXT: 3 8 2.00 * vpmovsxbd (%rax), %ymm2
@@ -663,8 +663,8 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 11 1.00 * vpmullw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 4 1.00 vpmuludq %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 11 1.00 * vpmuludq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpor %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpor (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpor %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpsadbw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 10 1.00 * vpsadbw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpshufb %ymm0, %ymm1, %ymm2
@@ -675,12 +675,12 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpshufhw $1, (%rax), %ymm2
# CHECK-NEXT: 1 1 0.25 vpshuflw $1, %ymm0, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpshuflw $1, (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsignb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsignb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsignd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsignd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsignw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsignw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsignb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsignb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsignd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsignd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsignw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsignw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 1 2.00 vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: 2 1 2.00 vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 2.00 * vpslld (%rax), %ymm1, %ymm2
@@ -727,22 +727,22 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsrlw $1, %ymm0, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsrlw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 2.00 * vpsrlw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubusb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubusb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubusw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubusw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsubw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsubw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubusb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubusw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpsubw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpunpckhbw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpunpckhbw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpunpckhdq %ymm0, %ymm1, %ymm2
@@ -759,8 +759,8 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpunpcklqdq (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpunpcklwd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpunpcklwd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpxor %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpxor (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 0.50 vpxor %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpxor (%rax), %ymm1, %ymm2
# CHECK: Resources:
# CHECK-NEXT: [0] - ZnAGU0
@@ -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: 67.00 67.00 - - - - - 71.17 159.67 141.00 41.17 -
+# CHECK-NEXT: 67.00 67.00 - - - - - 96.67 183.17 164.50 64.67 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -800,12 +800,12 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vmovntdqa (%rax), %ymm0
# CHECK-NEXT: - - - - - - - - - - - - vmpsadbw $1, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - vmpsadbw $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpabsb %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpabsb (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpabsd %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpabsd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpabsw %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpabsw (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpabsb %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpabsb (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpabsd %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpabsd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpabsw %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpabsw (%rax), %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpackssdw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpackssdw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpacksswb %ymm0, %ymm1, %ymm2
@@ -814,38 +814,38 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpackusdw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpackuswb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpackuswb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddusb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddusb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddusw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddusw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpaddw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpaddw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddusb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddusb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddusw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddusw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpaddw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpaddw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpalignr $1, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpalignr $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpand %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpand (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpandn %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpandn (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpavgb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpavgb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpavgw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpavgw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpand %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpand (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpandn %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpandn (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpavgb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpavgb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpavgw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpavgw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vpblendd $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vpblendd $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vpblendd $11, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.50 1.50 - - - vpblendd $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpblendvb %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vpblendvb %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - vpblendvb %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpblendvb %ymm3, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.33 0.33 - 0.33 - vpblendw $11, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.33 0.33 - 0.33 - vpblendw $11, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpbroadcastb %xmm0, %xmm0
@@ -864,22 +864,22 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpbroadcastw (%rax), %xmm0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpbroadcastw %xmm0, %ymm0
# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpbroadcastw (%rax), %ymm0
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpeqw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpcmpeqw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpcmpgtb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpcmpgtb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpcmpgtd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpcmpgtd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.50 - - 0.50 - vpcmpgtq %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - 1.00 - vpcmpgtq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpcmpgtw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpcmpgtw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vperm2i128 $1, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpermd %ymm0, %ymm1, %ymm2
@@ -922,30 +922,30 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.50 1.50 - - - vpmaskmovq (%rax), %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovq %xmm0, %xmm1, (%rax)
# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovq %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpmaxsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpmaxsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpmaxsd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpmaxsd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpmaxsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpmaxsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpmaxub %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpmaxub (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpmaxud %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpmaxud (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpmaxuw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpmaxuw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpminsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpminsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpminsd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpminsd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpminsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpminsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpminub %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpminub (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpminud %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpminud (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpminuw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpminuw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpmaxsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpmaxsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpmaxsd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpmaxsd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpmaxsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpmaxsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpmaxub %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpmaxub (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpmaxud %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpmaxud (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpmaxuw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpmaxuw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpminsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpminsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpminsd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpminsd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpminsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpminsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpminub %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpminub (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpminud %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpminud (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpminuw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpminuw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpmovmskb %ymm0, %ecx
# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovsxbd %xmm0, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovsxbd (%rax), %ymm2
@@ -985,8 +985,8 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vpmullw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmuludq %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vpmuludq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpor %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpor (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpor %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vpsadbw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpshufb %ymm0, %ymm1, %ymm2
@@ -997,12 +997,12 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpshufhw $1, (%rax), %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpshuflw $1, %ymm0, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpshuflw $1, (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsignb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsignb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsignd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsignd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsignw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsignw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsignb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsignb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsignd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsignd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsignw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsignw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpslld (%rax), %ymm1, %ymm2
@@ -1049,22 +1049,22 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlw $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrlw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubsb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubsb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubusb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubusb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubusw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubusw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsubw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubusb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubusb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubusw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubusw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpsubw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpsubw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpunpckhbw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpunpckhbw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpunpckhdq %ymm0, %ymm1, %ymm2
@@ -1081,5 +1081,5 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpunpcklqdq (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpunpcklwd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpunpcklwd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpxor %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpxor (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpxor %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpxor (%rax), %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
index 4596ff6b26c68..9adc74d11d221 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
@@ -100,13 +100,13 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 83
-# CHECK-NEXT: Total Cycles: 24
-# CHECK-NEXT: Total uOps: 83
+# CHECK-NEXT: Total Cycles: 32
+# CHECK-NEXT: Total uOps: 109
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 3.46
-# CHECK-NEXT: IPC: 3.46
-# CHECK-NEXT: Block RThroughput: 20.8
+# CHECK-NEXT: uOps Per Cycle: 3.41
+# CHECK-NEXT: IPC: 2.59
+# CHECK-NEXT: Block RThroughput: 27.3
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -136,14 +136,14 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 1 1 0.25 vpcmpgtd %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 1 1 0.50 vpcmpgtq %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 1 1 0.25 vpcmpgtw %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 1 0.25 vpcmpgtb %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 1 1 0.25 vpcmpgtd %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpcmpgtb %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpcmpgtd %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 1 1 0.50 vpcmpgtq %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 1 1 0.25 vpcmpgtw %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 1 1 0.25 vpcmpgtb %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 1 1 0.25 vpcmpgtd %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpcmpgtw %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpcmpgtb %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpcmpgtd %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 1 1 0.50 vpcmpgtq %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 1 1 0.25 vpcmpgtw %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpcmpgtw %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 1 1 0.25 psubb %mm2, %mm2
# CHECK-NEXT: 1 1 0.25 psubd %mm2, %mm2
# CHECK-NEXT: 1 1 0.25 psubq %mm2, %mm2
@@ -156,50 +156,50 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 1 1 0.25 vpsubd %xmm3, %xmm3, %xmm3
# CHECK-NEXT: 1 1 0.25 vpsubq %xmm3, %xmm3, %xmm3
# CHECK-NEXT: 1 1 0.25 vpsubw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 1 0.25 vpsubb %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 1 1 0.25 vpsubd %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 1 1 0.25 vpsubq %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 1 1 0.25 vpsubw %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpsubb %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpsubd %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpsubq %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpsubw %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 1 1 0.25 vpsubb %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 1 1 0.25 vpsubd %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 1 1 0.25 vpsubq %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 1 1 0.25 vpsubw %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 1 0.25 vpsubb %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 1 1 0.25 vpsubd %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 1 1 0.25 vpsubq %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 1 1 0.25 vpsubw %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpsubb %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpsubd %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpsubq %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpsubw %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 1 1 0.25 andnps %xmm0, %xmm0
# CHECK-NEXT: 1 1 0.25 andnpd %xmm1, %xmm1
# CHECK-NEXT: 1 1 0.25 vandnps %xmm2, %xmm2, %xmm2
# CHECK-NEXT: 1 1 0.25 vandnpd %xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 1 1 0.25 vandnps %ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 1 1 0.25 vandnpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 2 1 0.50 vandnps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 2 1 0.50 vandnpd %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 1 1 0.25 pandn %mm2, %mm2
# CHECK-NEXT: 1 1 0.25 pandn %xmm2, %xmm2
# CHECK-NEXT: 1 1 0.25 vpandn %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 1 0.25 vpandn %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpandn %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 1 1 0.25 vandnps %xmm2, %xmm2, %xmm5
# CHECK-NEXT: 1 1 0.25 vandnpd %xmm1, %xmm1, %xmm5
# CHECK-NEXT: 1 1 0.25 vpandn %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 1 0.25 vandnps %ymm2, %ymm2, %ymm5
-# CHECK-NEXT: 1 1 0.25 vandnpd %ymm1, %ymm1, %ymm5
-# CHECK-NEXT: 1 1 0.25 vpandn %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vandnps %ymm2, %ymm2, %ymm5
+# CHECK-NEXT: 2 1 0.50 vandnpd %ymm1, %ymm1, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpandn %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 1 1 0.25 xorps %xmm0, %xmm0
# CHECK-NEXT: 1 1 0.25 xorpd %xmm1, %xmm1
# CHECK-NEXT: 1 1 0.25 vxorps %xmm2, %xmm2, %xmm2
# CHECK-NEXT: 1 1 0.25 vxorpd %xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 1 1 0.25 vxorps %ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 1 1 0.25 vxorpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 2 1 0.50 vxorps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 2 1 0.50 vxorpd %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 1 1 0.25 pxor %mm2, %mm2
# CHECK-NEXT: 1 1 0.25 pxor %xmm2, %xmm2
# CHECK-NEXT: 1 1 0.25 vpxor %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 1 0.25 vpxor %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 2 1 0.50 vpxor %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 1 1 0.25 vxorps %xmm4, %xmm4, %xmm5
# CHECK-NEXT: 1 1 0.25 vxorpd %xmm1, %xmm1, %xmm3
-# CHECK-NEXT: 1 1 0.25 vxorps %ymm4, %ymm4, %ymm5
-# CHECK-NEXT: 1 1 0.25 vxorpd %ymm1, %ymm1, %ymm3
+# CHECK-NEXT: 2 1 0.50 vxorps %ymm4, %ymm4, %ymm5
+# CHECK-NEXT: 2 1 0.50 vxorpd %ymm1, %ymm1, %ymm3
# CHECK-NEXT: 1 1 0.25 vpxor %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 1 0.25 vpxor %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 2 1 0.50 vpxor %ymm3, %ymm3, %ymm5
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 0
@@ -231,7 +231,7 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 1.00 1.00 1.00 1.00 - 19.00 20.00 20.00 20.00 -
+# CHECK-NEXT: - - 1.00 1.00 1.00 1.00 - 26.00 26.00 26.00 27.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -254,158 +254,158 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: - - - - - - - - - - 1.00 - vpcmpgtd %xmm3, %xmm3, %xmm5
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtq %xmm3, %xmm3, %xmm5
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpcmpgtw %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpcmpgtb %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpcmpgtd %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpcmpgtb %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - - - - 2.00 - vpcmpgtd %ymm3, %ymm3, %ymm3
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtq %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpcmpgtw %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpcmpgtb %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpcmpgtd %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpcmpgtw %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpcmpgtb %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - - - - 2.00 - vpcmpgtd %ymm3, %ymm3, %ymm5
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpgtq %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpcmpgtw %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpcmpgtw %ymm3, %ymm3, %ymm5
# CHECK-NEXT: - - - - - - - - 1.00 - - - psubb %mm2, %mm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - psubd %mm2, %mm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - psubq %mm2, %mm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - psubw %mm2, %mm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - psubb %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - psubd %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - psubq %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - psubw %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsubq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubb %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubd %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsubq %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubw %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsubq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubw %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubb %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubd %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsubq %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubw %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: - - - - - - - 1.00 - - - - andnps %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - andnpd %xmm1, %xmm1
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vandnps %xmm2, %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vandnpd %xmm1, %xmm1, %xmm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vandnps %ymm2, %ymm2, %ymm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vandnpd %ymm1, %ymm1, %ymm1
-# CHECK-NEXT: - - - - - - - - - 1.00 - - pandn %mm2, %mm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - pandn %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpandn %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpandn %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vandnps %xmm2, %xmm2, %xmm5
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vandnpd %xmm1, %xmm1, %xmm5
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpandn %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vandnps %ymm2, %ymm2, %ymm5
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vandnpd %ymm1, %ymm1, %ymm5
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpandn %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: - - - - - - - 1.00 - - - - xorps %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - xorpd %xmm1, %xmm1
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vxorps %xmm2, %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vxorpd %xmm1, %xmm1, %xmm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vxorps %ymm2, %ymm2, %ymm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vxorpd %ymm1, %ymm1, %ymm1
-# CHECK-NEXT: - - - - - - - - - 1.00 - - pxor %mm2, %mm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - pxor %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpxor %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vpxor %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vxorps %xmm4, %xmm4, %xmm5
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vxorpd %xmm1, %xmm1, %xmm3
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vxorps %ymm4, %ymm4, %ymm5
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vxorpd %ymm1, %ymm1, %ymm3
+# CHECK-NEXT: - - - - - - - 1.00 - - - - psubq %mm2, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - psubw %mm2, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psubb %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 - - - psubd %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - psubq %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - psubw %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsubb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsubb %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsubd %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - 2.00 - - - - vpsubq %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - - - - 2.00 - vpsubw %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsubb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - 1.00 - - - vpsubd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsubq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 1.00 - vpsubw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsubb %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsubd %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - 2.00 - - - - vpsubq %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - - - - 2.00 - vpsubw %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - - - 1.00 - - andnps %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - 1.00 - - - andnpd %xmm1, %xmm1
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vandnps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - vandnpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vandnps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vandnpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: - - - - - - - 1.00 - - - - pandn %mm2, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - pandn %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpandn %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpandn %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vandnps %xmm2, %xmm2, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 1.00 - vandnpd %xmm1, %xmm1, %xmm5
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpandn %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - 2.00 - - - - vandnps %ymm2, %ymm2, %ymm5
+# CHECK-NEXT: - - - - - - - - - - 2.00 - vandnpd %ymm1, %ymm1, %ymm5
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpandn %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - - 1.00 - - - xorps %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - 1.00 - - - - xorpd %xmm1, %xmm1
+# CHECK-NEXT: - - - - - - - - - - 1.00 - vxorps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vxorpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vxorps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - vxorpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: - - - - - - - - - - 1.00 - pxor %mm2, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - pxor %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 - - - vpxor %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - 2.00 - - - - vpxor %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: - - - - - - - - - - 1.00 - vxorps %xmm4, %xmm4, %xmm5
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vxorpd %xmm1, %xmm1, %xmm3
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vxorps %ymm4, %ymm4, %ymm5
+# CHECK-NEXT: - - - - - - - - - - 2.00 - vxorpd %ymm1, %ymm1, %ymm3
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpxor %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - 1.00 - - - vpxor %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: - - - - - - - 2.00 - - - - vpxor %ymm3, %ymm3, %ymm5
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789 0123
+# CHECK-NEXT: 0123456789 01
+# CHECK-NEXT: Index 0123456789 0123456789
-# CHECK: [0,0] DeER . . . . . subl %eax, %eax
-# CHECK-NEXT: [0,1] DeER . . . . . subq %rax, %rax
-# CHECK-NEXT: [0,2] DeER . . . . . xorl %eax, %eax
-# CHECK-NEXT: [0,3] DeER . . . . . xorq %rax, %rax
-# CHECK-NEXT: [0,4] .DeER. . . . . pcmpgtb %mm2, %mm2
-# CHECK-NEXT: [0,5] .DeER. . . . . pcmpgtd %mm2, %mm2
-# CHECK-NEXT: [0,6] .DeER. . . . . pcmpgtw %mm2, %mm2
-# CHECK-NEXT: [0,7] .DeER. . . . . pcmpgtb %xmm2, %xmm2
-# CHECK-NEXT: [0,8] . DeER . . . . pcmpgtd %xmm2, %xmm2
-# CHECK-NEXT: [0,9] . DeER . . . . pcmpgtq %xmm2, %xmm2
-# CHECK-NEXT: [0,10] . DeER . . . . pcmpgtw %xmm2, %xmm2
-# CHECK-NEXT: [0,11] . DeER . . . . vpcmpgtb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,12] . DeER . . . . vpcmpgtd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,13] . DeER . . . . vpcmpgtq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,14] . DeER . . . . vpcmpgtw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,15] . DeER . . . . vpcmpgtb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,16] . DeER . . . . vpcmpgtd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,17] . DeER . . . . vpcmpgtq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,18] . DeER . . . . vpcmpgtw %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,19] . DeER . . . . vpcmpgtb %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,20] . DeER . . . . vpcmpgtd %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,21] . DeER . . . . vpcmpgtq %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,22] . DeER . . . . vpcmpgtw %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,23] . DeER . . . . vpcmpgtb %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,24] . .DeER. . . . vpcmpgtd %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,25] . .DeER. . . . vpcmpgtq %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,26] . .DeER. . . . vpcmpgtw %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,27] . .DeER. . . . psubb %mm2, %mm2
-# CHECK-NEXT: [0,28] . . DeER . . . psubd %mm2, %mm2
-# CHECK-NEXT: [0,29] . . DeER . . . psubq %mm2, %mm2
-# CHECK-NEXT: [0,30] . . DeER . . . psubw %mm2, %mm2
-# CHECK-NEXT: [0,31] . . DeER . . . psubb %xmm2, %xmm2
-# CHECK-NEXT: [0,32] . . DeER . . . psubd %xmm2, %xmm2
-# CHECK-NEXT: [0,33] . . DeER . . . psubq %xmm2, %xmm2
-# CHECK-NEXT: [0,34] . . DeER . . . psubw %xmm2, %xmm2
-# CHECK-NEXT: [0,35] . . DeER . . . vpsubb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,36] . . DeER . . . vpsubd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,37] . . DeER . . . vpsubq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,38] . . DeER . . . vpsubw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,39] . . DeER . . . vpsubb %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,40] . . DeER . . . vpsubd %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,41] . . DeER . . . vpsubq %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,42] . . DeER . . . vpsubw %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,43] . . DeER . . . vpsubb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,44] . . .DeER. . . vpsubd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,45] . . .DeER. . . vpsubq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,46] . . .DeER. . . vpsubw %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,47] . . .DeER. . . vpsubb %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,48] . . . DeER . . vpsubd %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,49] . . . DeER . . vpsubq %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,50] . . . DeER . . vpsubw %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,51] . . . DeER . . andnps %xmm0, %xmm0
-# CHECK-NEXT: [0,52] . . . DeER . . andnpd %xmm1, %xmm1
-# CHECK-NEXT: [0,53] . . . DeER . . vandnps %xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,54] . . . DeER . . vandnpd %xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,55] . . . DeER . . vandnps %ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,56] . . . DeER . . vandnpd %ymm1, %ymm1, %ymm1
-# CHECK-NEXT: [0,57] . . . DeER . . pandn %mm2, %mm2
-# CHECK-NEXT: [0,58] . . . DeER . . pandn %xmm2, %xmm2
-# CHECK-NEXT: [0,59] . . . DeER . . vpandn %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,60] . . . DeER . . vpandn %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,61] . . . DeER . . vandnps %xmm2, %xmm2, %xmm5
-# CHECK-NEXT: [0,62] . . . DeER . . vandnpd %xmm1, %xmm1, %xmm5
-# CHECK-NEXT: [0,63] . . . DeER . . vpandn %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,64] . . . .DeER. . vandnps %ymm2, %ymm2, %ymm5
-# CHECK-NEXT: [0,65] . . . .DeER. . vandnpd %ymm1, %ymm1, %ymm5
-# CHECK-NEXT: [0,66] . . . .DeER. . vpandn %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,67] . . . .DeER. . xorps %xmm0, %xmm0
-# CHECK-NEXT: [0,68] . . . . DeER . xorpd %xmm1, %xmm1
-# CHECK-NEXT: [0,69] . . . . DeER . vxorps %xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,70] . . . . DeER . vxorpd %xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,71] . . . . DeER . vxorps %ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,72] . . . . DeER . vxorpd %ymm1, %ymm1, %ymm1
-# CHECK-NEXT: [0,73] . . . . DeER . pxor %mm2, %mm2
-# CHECK-NEXT: [0,74] . . . . DeER . pxor %xmm2, %xmm2
-# CHECK-NEXT: [0,75] . . . . DeER . vpxor %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,76] . . . . DeER. vpxor %ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,77] . . . . DeER. vxorps %xmm4, %xmm4, %xmm5
-# CHECK-NEXT: [0,78] . . . . DeER. vxorpd %xmm1, %xmm1, %xmm3
-# CHECK-NEXT: [0,79] . . . . DeER. vxorps %ymm4, %ymm4, %ymm5
-# CHECK-NEXT: [0,80] . . . . DeER vxorpd %ymm1, %ymm1, %ymm3
-# CHECK-NEXT: [0,81] . . . . DeER vpxor %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,82] . . . . DeER vpxor %ymm3, %ymm3, %ymm5
+# CHECK: [0,0] DeER . . . . . .. subl %eax, %eax
+# CHECK-NEXT: [0,1] DeER . . . . . .. subq %rax, %rax
+# CHECK-NEXT: [0,2] DeER . . . . . .. xorl %eax, %eax
+# CHECK-NEXT: [0,3] DeER . . . . . .. xorq %rax, %rax
+# CHECK-NEXT: [0,4] .DeER. . . . . .. pcmpgtb %mm2, %mm2
+# CHECK-NEXT: [0,5] .DeER. . . . . .. pcmpgtd %mm2, %mm2
+# CHECK-NEXT: [0,6] .DeER. . . . . .. pcmpgtw %mm2, %mm2
+# CHECK-NEXT: [0,7] .DeER. . . . . .. pcmpgtb %xmm2, %xmm2
+# CHECK-NEXT: [0,8] . DeER . . . . .. pcmpgtd %xmm2, %xmm2
+# CHECK-NEXT: [0,9] . DeER . . . . .. pcmpgtq %xmm2, %xmm2
+# CHECK-NEXT: [0,10] . DeER . . . . .. pcmpgtw %xmm2, %xmm2
+# CHECK-NEXT: [0,11] . DeER . . . . .. vpcmpgtb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,12] . DeER . . . . .. vpcmpgtd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,13] . DeER . . . . .. vpcmpgtq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,14] . DeER . . . . .. vpcmpgtw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,15] . DeER . . . . .. vpcmpgtb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,16] . DeER . . . . .. vpcmpgtd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,17] . DeER . . . . .. vpcmpgtq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,18] . DeER . . . . .. vpcmpgtw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,19] . DeER . . . . .. vpcmpgtb %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,20] . DeER . . . . .. vpcmpgtd %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,21] . .DeER. . . . .. vpcmpgtq %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,22] . .DeER. . . . .. vpcmpgtw %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,23] . . DeER . . . .. vpcmpgtb %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,24] . . DeER . . . .. vpcmpgtd %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,25] . . DeER . . . .. vpcmpgtq %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,26] . . DeER . . . .. vpcmpgtw %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,27] . . D=eER . . . .. psubb %mm2, %mm2
+# CHECK-NEXT: [0,28] . . DeER . . . .. psubd %mm2, %mm2
+# CHECK-NEXT: [0,29] . . DeER . . . .. psubq %mm2, %mm2
+# CHECK-NEXT: [0,30] . . D=eER . . . .. psubw %mm2, %mm2
+# CHECK-NEXT: [0,31] . . D=eER . . . .. psubb %xmm2, %xmm2
+# CHECK-NEXT: [0,32] . . DeER . . . .. psubd %xmm2, %xmm2
+# CHECK-NEXT: [0,33] . . DeER . . . .. psubq %xmm2, %xmm2
+# CHECK-NEXT: [0,34] . . D=eER. . . .. psubw %xmm2, %xmm2
+# CHECK-NEXT: [0,35] . . D=eER. . . .. vpsubb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,36] . . .DeER. . . .. vpsubd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,37] . . .DeER. . . .. vpsubq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,38] . . .D=eER . . .. vpsubw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,39] . . . DeER . . .. vpsubb %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,40] . . . DeER . . .. vpsubd %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,41] . . . DeER . . .. vpsubq %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,42] . . . DeER . . .. vpsubw %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,43] . . . DeER . . .. vpsubb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,44] . . . DeER . . .. vpsubd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,45] . . . D=eER . . .. vpsubq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,46] . . . D=eER . . .. vpsubw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,47] . . . DeER . . .. vpsubb %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,48] . . . DeER . . .. vpsubd %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,49] . . . .DeER. . .. vpsubq %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,50] . . . .DeER. . .. vpsubw %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,51] . . . . DeER . .. andnps %xmm0, %xmm0
+# CHECK-NEXT: [0,52] . . . . DeER . .. andnpd %xmm1, %xmm1
+# CHECK-NEXT: [0,53] . . . . D=eER . .. vandnps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,54] . . . . D=eER . .. vandnpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,55] . . . . DeER . .. vandnps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,56] . . . . DeER . .. vandnpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,57] . . . . DeER . .. pandn %mm2, %mm2
+# CHECK-NEXT: [0,58] . . . . DeER . .. pandn %xmm2, %xmm2
+# CHECK-NEXT: [0,59] . . . . D=eER . .. vpandn %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,60] . . . . DeER . .. vpandn %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,61] . . . . DeER . .. vandnps %xmm2, %xmm2, %xmm5
+# CHECK-NEXT: [0,62] . . . . DeER . .. vandnpd %xmm1, %xmm1, %xmm5
+# CHECK-NEXT: [0,63] . . . . .DeER. .. vpandn %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,64] . . . . .DeER. .. vandnps %ymm2, %ymm2, %ymm5
+# CHECK-NEXT: [0,65] . . . . . DeER .. vandnpd %ymm1, %ymm1, %ymm5
+# CHECK-NEXT: [0,66] . . . . . DeER .. vpandn %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,67] . . . . . DeER .. xorps %xmm0, %xmm0
+# CHECK-NEXT: [0,68] . . . . . DeER .. xorpd %xmm1, %xmm1
+# CHECK-NEXT: [0,69] . . . . . D=eER .. vxorps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,70] . . . . . D=eER .. vxorpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,71] . . . . . DeER .. vxorps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,72] . . . . . DeER .. vxorpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,73] . . . . . DeER .. pxor %mm2, %mm2
+# CHECK-NEXT: [0,74] . . . . . DeER .. pxor %xmm2, %xmm2
+# CHECK-NEXT: [0,75] . . . . . D=eER.. vpxor %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,76] . . . . . .DeER.. vpxor %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,77] . . . . . .DeER.. vxorps %xmm4, %xmm4, %xmm5
+# CHECK-NEXT: [0,78] . . . . . .DeER.. vxorpd %xmm1, %xmm1, %xmm3
+# CHECK-NEXT: [0,79] . . . . . . DeER. vxorps %ymm4, %ymm4, %ymm5
+# CHECK-NEXT: [0,80] . . . . . . DeER. vxorpd %ymm1, %ymm1, %ymm3
+# CHECK-NEXT: [0,81] . . . . . . DeER vpxor %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,82] . . . . . . DeER vpxor %ymm3, %ymm3, %ymm5
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -441,39 +441,39 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 24. 1 1.0 1.0 0.0 vpcmpgtd %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 25. 1 1.0 1.0 0.0 vpcmpgtq %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 26. 1 1.0 1.0 0.0 vpcmpgtw %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 27. 1 1.0 1.0 0.0 psubb %mm2, %mm2
+# CHECK-NEXT: 27. 1 2.0 2.0 0.0 psubb %mm2, %mm2
# CHECK-NEXT: 28. 1 1.0 1.0 0.0 psubd %mm2, %mm2
# CHECK-NEXT: 29. 1 1.0 1.0 0.0 psubq %mm2, %mm2
-# CHECK-NEXT: 30. 1 1.0 1.0 0.0 psubw %mm2, %mm2
-# CHECK-NEXT: 31. 1 1.0 1.0 0.0 psubb %xmm2, %xmm2
+# CHECK-NEXT: 30. 1 2.0 2.0 0.0 psubw %mm2, %mm2
+# CHECK-NEXT: 31. 1 2.0 2.0 0.0 psubb %xmm2, %xmm2
# CHECK-NEXT: 32. 1 1.0 1.0 0.0 psubd %xmm2, %xmm2
# CHECK-NEXT: 33. 1 1.0 1.0 0.0 psubq %xmm2, %xmm2
-# CHECK-NEXT: 34. 1 1.0 1.0 0.0 psubw %xmm2, %xmm2
-# CHECK-NEXT: 35. 1 1.0 1.0 0.0 vpsubb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 34. 1 2.0 2.0 0.0 psubw %xmm2, %xmm2
+# CHECK-NEXT: 35. 1 2.0 2.0 0.0 vpsubb %xmm3, %xmm3, %xmm3
# CHECK-NEXT: 36. 1 1.0 1.0 0.0 vpsubd %xmm3, %xmm3, %xmm3
# CHECK-NEXT: 37. 1 1.0 1.0 0.0 vpsubq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 38. 1 1.0 1.0 0.0 vpsubw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 38. 1 2.0 2.0 0.0 vpsubw %xmm3, %xmm3, %xmm3
# CHECK-NEXT: 39. 1 1.0 1.0 0.0 vpsubb %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 40. 1 1.0 1.0 0.0 vpsubd %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 41. 1 1.0 1.0 0.0 vpsubq %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 42. 1 1.0 1.0 0.0 vpsubw %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 43. 1 1.0 1.0 0.0 vpsubb %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 44. 1 1.0 1.0 0.0 vpsubd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 45. 1 1.0 1.0 0.0 vpsubq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 46. 1 1.0 1.0 0.0 vpsubw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 45. 1 2.0 2.0 0.0 vpsubq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 46. 1 2.0 2.0 0.0 vpsubw %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 47. 1 1.0 1.0 0.0 vpsubb %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 48. 1 1.0 1.0 0.0 vpsubd %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 49. 1 1.0 1.0 0.0 vpsubq %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 50. 1 1.0 1.0 0.0 vpsubw %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 51. 1 1.0 1.0 0.0 andnps %xmm0, %xmm0
# CHECK-NEXT: 52. 1 1.0 1.0 0.0 andnpd %xmm1, %xmm1
-# CHECK-NEXT: 53. 1 1.0 1.0 0.0 vandnps %xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 54. 1 1.0 1.0 0.0 vandnpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 53. 1 2.0 2.0 0.0 vandnps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 54. 1 2.0 2.0 0.0 vandnpd %xmm1, %xmm1, %xmm1
# CHECK-NEXT: 55. 1 1.0 1.0 0.0 vandnps %ymm2, %ymm2, %ymm2
# CHECK-NEXT: 56. 1 1.0 1.0 0.0 vandnpd %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 57. 1 1.0 1.0 0.0 pandn %mm2, %mm2
# CHECK-NEXT: 58. 1 1.0 1.0 0.0 pandn %xmm2, %xmm2
-# CHECK-NEXT: 59. 1 1.0 1.0 0.0 vpandn %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 59. 1 2.0 2.0 0.0 vpandn %xmm3, %xmm3, %xmm3
# CHECK-NEXT: 60. 1 1.0 1.0 0.0 vpandn %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 61. 1 1.0 1.0 0.0 vandnps %xmm2, %xmm2, %xmm5
# CHECK-NEXT: 62. 1 1.0 1.0 0.0 vandnpd %xmm1, %xmm1, %xmm5
@@ -483,13 +483,13 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 66. 1 1.0 1.0 0.0 vpandn %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 67. 1 1.0 1.0 0.0 xorps %xmm0, %xmm0
# CHECK-NEXT: 68. 1 1.0 1.0 0.0 xorpd %xmm1, %xmm1
-# CHECK-NEXT: 69. 1 1.0 1.0 0.0 vxorps %xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 70. 1 1.0 1.0 0.0 vxorpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 69. 1 2.0 2.0 0.0 vxorps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 70. 1 2.0 2.0 0.0 vxorpd %xmm1, %xmm1, %xmm1
# CHECK-NEXT: 71. 1 1.0 1.0 0.0 vxorps %ymm2, %ymm2, %ymm2
# CHECK-NEXT: 72. 1 1.0 1.0 0.0 vxorpd %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 73. 1 1.0 1.0 0.0 pxor %mm2, %mm2
# CHECK-NEXT: 74. 1 1.0 1.0 0.0 pxor %xmm2, %xmm2
-# CHECK-NEXT: 75. 1 1.0 1.0 0.0 vpxor %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 75. 1 2.0 2.0 0.0 vpxor %xmm3, %xmm3, %xmm3
# CHECK-NEXT: 76. 1 1.0 1.0 0.0 vpxor %ymm3, %ymm3, %ymm3
# CHECK-NEXT: 77. 1 1.0 1.0 0.0 vxorps %xmm4, %xmm4, %xmm5
# CHECK-NEXT: 78. 1 1.0 1.0 0.0 vxorpd %xmm1, %xmm1, %xmm3
@@ -497,4 +497,4 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 80. 1 1.0 1.0 0.0 vxorpd %ymm1, %ymm1, %ymm3
# CHECK-NEXT: 81. 1 1.0 1.0 0.0 vpxor %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 82. 1 1.0 1.0 0.0 vpxor %ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 1 1.0 1.0 0.0 <total>
+# CHECK-NEXT: 1 1.2 1.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
index 53f9fb08b2fcc..fc6a825af347e 100644
--- a/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
@@ -30,8 +30,8 @@ cmp %edi, %edx
# SKYLAKE-NEXT: Total Cycles: 110
# SKYLAKE-NEXT: Total uOps: 500
-# ZNVER1-NEXT: Total Cycles: 110
-# ZNVER1-NEXT: Total uOps: 400
+# ZNVER1-NEXT: Total Cycles: 143
+# ZNVER1-NEXT: Total uOps: 500
# ZNVER2-NEXT: Total Cycles: 110
# ZNVER2-NEXT: Total uOps: 400
@@ -52,9 +52,9 @@ cmp %edi, %edx
# SKYLAKE-NEXT: Block RThroughput: 0.8
# ZNVER1: Dispatch Width: 4
-# ZNVER1-NEXT: uOps Per Cycle: 3.64
-# ZNVER1-NEXT: IPC: 3.64
-# ZNVER1-NEXT: Block RThroughput: 1.0
+# ZNVER1-NEXT: uOps Per Cycle: 3.50
+# ZNVER1-NEXT: IPC: 2.80
+# ZNVER1-NEXT: Block RThroughput: 1.3
# ZNVER2: Dispatch Width: 4
# ZNVER2-NEXT: uOps Per Cycle: 3.64
@@ -73,7 +73,7 @@ cmp %edi, %edx
# SKYLAKE-NEXT: Index 0123456789
# ZNVER1-NEXT: 0123456789
-# ZNVER1-NEXT: Index 0123456789
+# ZNVER1-NEXT: Index 0123456789 012
# ZNVER2-NEXT: 0123456789
# ZNVER2-NEXT: Index 0123456789
@@ -201,46 +201,46 @@ cmp %edi, %edx
# SKYLAKE-NEXT: [9,2] . . DeE-------R addq $32, %r8
# SKYLAKE-NEXT: [9,3] . . D=eE------R cmpl %edi, %edx
-# ZNVER1: [0,0] DeER . . . . addl $1, %edx
-# ZNVER1-NEXT: [0,1] DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [0,2] DeE-------R . . addq $32, %r8
-# ZNVER1-NEXT: [0,3] D=eE------R . . cmpl %edi, %edx
-# ZNVER1-NEXT: [1,0] .DeE------R . . addl $1, %edx
-# ZNVER1-NEXT: [1,1] .DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [1,2] .DeE-------R . . addq $32, %r8
-# ZNVER1-NEXT: [1,3] .D=eE------R . . cmpl %edi, %edx
-# ZNVER1-NEXT: [2,0] . DeE------R . . addl $1, %edx
-# ZNVER1-NEXT: [2,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [2,2] . DeE-------R . . addq $32, %r8
-# ZNVER1-NEXT: [2,3] . D=eE------R . . cmpl %edi, %edx
-# ZNVER1-NEXT: [3,0] . DeE------R . . addl $1, %edx
-# ZNVER1-NEXT: [3,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [3,2] . DeE-------R . . addq $32, %r8
-# ZNVER1-NEXT: [3,3] . D=eE------R . . cmpl %edi, %edx
-# ZNVER1-NEXT: [4,0] . DeE------R . . addl $1, %edx
-# ZNVER1-NEXT: [4,1] . DeeeeeeeeER. . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [4,2] . DeE-------R. . addq $32, %r8
-# ZNVER1-NEXT: [4,3] . D=eE------R. . cmpl %edi, %edx
-# ZNVER1-NEXT: [5,0] . DeE------R. . addl $1, %edx
-# ZNVER1-NEXT: [5,1] . DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [5,2] . DeE-------R . addq $32, %r8
-# ZNVER1-NEXT: [5,3] . D=eE------R . cmpl %edi, %edx
-# ZNVER1-NEXT: [6,0] . .DeE------R . addl $1, %edx
-# ZNVER1-NEXT: [6,1] . .DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [6,2] . .DeE-------R . addq $32, %r8
-# ZNVER1-NEXT: [6,3] . .D=eE------R . cmpl %edi, %edx
-# ZNVER1-NEXT: [7,0] . . DeE------R . addl $1, %edx
-# ZNVER1-NEXT: [7,1] . . DeeeeeeeeER . vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [7,2] . . DeE-------R . addq $32, %r8
-# ZNVER1-NEXT: [7,3] . . D=eE------R . cmpl %edi, %edx
-# ZNVER1-NEXT: [8,0] . . DeE------R . addl $1, %edx
-# ZNVER1-NEXT: [8,1] . . DeeeeeeeeER. vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [8,2] . . DeE-------R. addq $32, %r8
-# ZNVER1-NEXT: [8,3] . . D=eE------R. cmpl %edi, %edx
-# ZNVER1-NEXT: [9,0] . . DeE------R. addl $1, %edx
-# ZNVER1-NEXT: [9,1] . . DeeeeeeeeER vpaddd (%r8), %ymm0, %ymm0
-# ZNVER1-NEXT: [9,2] . . DeE-------R addq $32, %r8
-# ZNVER1-NEXT: [9,3] . . D=eE------R cmpl %edi, %edx
+# ZNVER1: [0,0] DeER . . . . . addl $1, %edx
+# ZNVER1-NEXT: [0,1] DeeeeeeeeER . . . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [0,2] DeE-------R . . . addq $32, %r8
+# ZNVER1-NEXT: [0,3] .DeE------R . . . cmpl %edi, %edx
+# ZNVER1-NEXT: [1,0] .DeE------R . . . addl $1, %edx
+# ZNVER1-NEXT: [1,1] .DeeeeeeeeER . . . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [1,2] . DeE------R . . . addq $32, %r8
+# ZNVER1-NEXT: [1,3] . DeE------R . . . cmpl %edi, %edx
+# ZNVER1-NEXT: [2,0] . DeE------R . . . addl $1, %edx
+# ZNVER1-NEXT: [2,1] . DeeeeeeeeER . . . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [2,2] . DeE-------R . . . addq $32, %r8
+# ZNVER1-NEXT: [2,3] . DeE-------R . . . cmpl %edi, %edx
+# ZNVER1-NEXT: [3,0] . DeE------R . . . addl $1, %edx
+# ZNVER1-NEXT: [3,1] . DeeeeeeeeER. . . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [3,2] . DeE-------R. . . addq $32, %r8
+# ZNVER1-NEXT: [3,3] . DeE------R. . . cmpl %edi, %edx
+# ZNVER1-NEXT: [4,0] . DeE------R. . . addl $1, %edx
+# ZNVER1-NEXT: [4,1] . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [4,2] . .DeE------R . . addq $32, %r8
+# ZNVER1-NEXT: [4,3] . .DeE------R . . cmpl %edi, %edx
+# ZNVER1-NEXT: [5,0] . .DeE------R . . addl $1, %edx
+# ZNVER1-NEXT: [5,1] . . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [5,2] . . DeE-------R . . addq $32, %r8
+# ZNVER1-NEXT: [5,3] . . DeE-------R . . cmpl %edi, %edx
+# ZNVER1-NEXT: [6,0] . . DeE------R . . addl $1, %edx
+# ZNVER1-NEXT: [6,1] . . DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [6,2] . . DeE-------R . . addq $32, %r8
+# ZNVER1-NEXT: [6,3] . . DeE------R . . cmpl %edi, %edx
+# ZNVER1-NEXT: [7,0] . . DeE------R . . addl $1, %edx
+# ZNVER1-NEXT: [7,1] . . DeeeeeeeeER. . vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [7,2] . . DeE------R. . addq $32, %r8
+# ZNVER1-NEXT: [7,3] . . DeE------R. . cmpl %edi, %edx
+# ZNVER1-NEXT: [8,0] . . DeE------R. . addl $1, %edx
+# ZNVER1-NEXT: [8,1] . . .DeeeeeeeeER. vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [8,2] . . .DeE-------R. addq $32, %r8
+# ZNVER1-NEXT: [8,3] . . .DeE-------R. cmpl %edi, %edx
+# ZNVER1-NEXT: [9,0] . . . DeE------R. addl $1, %edx
+# ZNVER1-NEXT: [9,1] . . . DeeeeeeeeER vpaddd (%r8), %ymm0, %ymm0
+# ZNVER1-NEXT: [9,2] . . . DeE-------R addq $32, %r8
+# ZNVER1-NEXT: [9,3] . . . DeE------R cmpl %edi, %edx
# ZNVER2: [0,0] DeER . . . . addl $1, %edx
# ZNVER2-NEXT: [0,1] DeeeeeeeeER . . vpaddd (%r8), %ymm0, %ymm0
@@ -294,7 +294,7 @@ cmp %edi, %edx
# BDWELL-NEXT: 0. 10 1.0 0.4 4.5 addl $1, %edx
# HASWELL-NEXT: 0. 10 1.0 0.4 5.4 addl $1, %edx
# SKYLAKE-NEXT: 0. 10 1.9 0.1 5.4 addl $1, %edx
-# ZNVER1-NEXT: 0. 10 1.0 0.1 5.4 addl $1, %edx
+# ZNVER1-NEXT: 0. 10 1.0 0.4 5.4 addl $1, %edx
# ZNVER2-NEXT: 0. 10 1.0 0.1 5.4 addl $1, %edx
# ALL-NEXT: 1. 10 1.0 0.1 0.0 vpaddd (%r8), %ymm0, %ymm0
@@ -311,9 +311,9 @@ cmp %edi, %edx
# SKYLAKE-NEXT: 3. 10 2.0 0.0 6.0 cmpl %edi, %edx
# SKYLAKE-NEXT: 10 1.5 0.1 4.6 <total>
-# ZNVER1-NEXT: 2. 10 1.0 0.1 7.0 addq $32, %r8
-# ZNVER1-NEXT: 3. 10 2.0 0.0 6.0 cmpl %edi, %edx
-# ZNVER1-NEXT: 10 1.3 0.1 4.6 <total>
+# ZNVER1-NEXT: 2. 10 1.0 0.4 6.7 addq $32, %r8
+# ZNVER1-NEXT: 3. 10 1.0 0.0 6.3 cmpl %edi, %edx
+# ZNVER1-NEXT: 10 1.0 0.2 4.6 <total>
# ZNVER2-NEXT: 2. 10 1.0 0.1 7.0 addq $32, %r8
# ZNVER2-NEXT: 3. 10 2.0 0.0 6.0 cmpl %edi, %edx
More information about the llvm-commits
mailing list