[llvm] c996904 - [X86] Adjust vector shift costs to match SoG (Issue #54889)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun May 29 09:56:07 PDT 2022
Author: Simon Pilgrim
Date: 2022-05-29T17:55:39+01:00
New Revision: c99690462ef7d510134ee3d58cdae87b26c23cb7
URL: https://github.com/llvm/llvm-project/commit/c99690462ef7d510134ee3d58cdae87b26c23cb7
DIFF: https://github.com/llvm/llvm-project/commit/c99690462ef7d510134ee3d58cdae87b26c23cb7.diff
LOG: [X86] Adjust vector shift costs to match SoG (Issue #54889)
znver1/2 models were incorrectly modelling the fpupipe (should be pipe2 for shift-by-scalar-amount and pipe1 for shift-by-element-amount) and znver1 ymm variants also require double pumping.
Now matches AMD SoG, Agner and instlatx64 numbers.
Thanks to @fabian-r for the report
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-mmx.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.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-mmx.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index c1be7141dfb6c..2e226e81c9522 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -398,14 +398,17 @@ defm : X86WriteRes<WriteVecMoveToGpr, [ZnFPU2], 2, [1], 1>;
defm : X86WriteRes<WriteVecMoveFromGpr, [ZnFPU2], 3, [1], 1>;
defm : X86WriteRes<WriteEMMS, [ZnFPU], 2, [1], 1>;
-defm : ZnWriteResFpuPair<WriteVecShift, [ZnFPU], 1>;
+defm : ZnWriteResFpuPair<WriteVecShift, [ZnFPU2], 1>;
defm : ZnWriteResFpuPair<WriteVecShiftX, [ZnFPU2], 1>;
-defm : ZnWriteResFpuPair<WriteVecShiftY, [ZnFPU2], 2>;
+defm : ZnWriteResFpuPair<WriteVecShiftY, [ZnFPU2], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteVecShiftZ>;
-defm : ZnWriteResFpuPair<WriteVecShiftImm, [ZnFPU], 1>;
-defm : ZnWriteResFpuPair<WriteVecShiftImmX, [ZnFPU], 1>;
-defm : ZnWriteResFpuPair<WriteVecShiftImmY, [ZnFPU], 1>;
+defm : ZnWriteResFpuPair<WriteVecShiftImm, [ZnFPU2], 1>;
+defm : ZnWriteResFpuPair<WriteVecShiftImmX, [ZnFPU2], 1>;
+defm : ZnWriteResFpuPair<WriteVecShiftImmY, [ZnFPU2], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteVecShiftImmZ>;
+defm : ZnWriteResFpuPair<WriteVarVecShift, [ZnFPU1], 3, [2], 1>;
+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>;
@@ -444,11 +447,6 @@ defm : ZnWriteResFpuPair<WritePSADBWY, [ZnFPU0], 3>;
defm : X86WriteResPairUnsupported<WritePSADBWZ>;
defm : ZnWriteResFpuPair<WritePHMINPOS, [ZnFPU0], 4>;
-// Vector Shift Operations
-defm : ZnWriteResFpuPair<WriteVarVecShift, [ZnFPU12], 1>;
-defm : ZnWriteResFpuPair<WriteVarVecShiftY, [ZnFPU12], 1>;
-defm : X86WriteResPairUnsupported<WriteVarVecShiftZ>;
-
// Vector insert/extract operations.
defm : ZnWriteResFpuPair<WriteVecInsert, [ZnFPU], 1>;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 0c28830074aaf..7805a5d78e758 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -393,14 +393,17 @@ defm : X86WriteRes<WriteVecMoveToGpr, [Zn2FPU2], 2, [1], 1>;
defm : X86WriteRes<WriteVecMoveFromGpr, [Zn2FPU2], 3, [1], 1>;
defm : X86WriteRes<WriteEMMS, [Zn2FPU], 2, [1], 1>;
-defm : Zn2WriteResFpuPair<WriteVecShift, [Zn2FPU], 1>;
+defm : Zn2WriteResFpuPair<WriteVecShift, [Zn2FPU2], 1>;
defm : Zn2WriteResFpuPair<WriteVecShiftX, [Zn2FPU2], 1>;
defm : Zn2WriteResFpuPair<WriteVecShiftY, [Zn2FPU2], 1>;
defm : X86WriteResPairUnsupported<WriteVecShiftZ>;
-defm : Zn2WriteResFpuPair<WriteVecShiftImm, [Zn2FPU], 1>;
-defm : Zn2WriteResFpuPair<WriteVecShiftImmX, [Zn2FPU], 1>;
-defm : Zn2WriteResFpuPair<WriteVecShiftImmY, [Zn2FPU], 1>;
+defm : Zn2WriteResFpuPair<WriteVecShiftImm, [Zn2FPU2], 1>;
+defm : Zn2WriteResFpuPair<WriteVecShiftImmX, [Zn2FPU2], 1>;
+defm : Zn2WriteResFpuPair<WriteVecShiftImmY, [Zn2FPU2], 1>;
defm : X86WriteResPairUnsupported<WriteVecShiftImmZ>;
+defm : Zn2WriteResFpuPair<WriteVarVecShift, [Zn2FPU1], 3, [2], 1>;
+defm : Zn2WriteResFpuPair<WriteVarVecShiftY, [Zn2FPU1], 3, [2], 1>;
+defm : X86WriteResPairUnsupported<WriteVarVecShiftZ>;
defm : Zn2WriteResFpuPair<WriteVecLogic, [Zn2FPU], 1>;
defm : Zn2WriteResFpuPair<WriteVecLogicX, [Zn2FPU], 1>;
defm : Zn2WriteResFpuPair<WriteVecLogicY, [Zn2FPU], 1>;
@@ -439,11 +442,6 @@ defm : Zn2WriteResFpuPair<WritePSADBWY, [Zn2FPU0], 3>;
defm : X86WriteResPairUnsupported<WritePSADBWZ>;
defm : Zn2WriteResFpuPair<WritePHMINPOS, [Zn2FPU0], 4>;
-// Vector Shift Operations
-defm : Zn2WriteResFpuPair<WriteVarVecShift, [Zn2FPU12], 3>;
-defm : Zn2WriteResFpuPair<WriteVarVecShiftY, [Zn2FPU12], 3>;
-defm : X86WriteResPairUnsupported<WriteVarVecShiftZ>;
-
// Vector insert/extract operations.
defm : Zn2WriteResFpuPair<WriteVecInsert, [Zn2FPU], 1>;
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 77e9c01139584..7b67829550cc4 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1562,30 +1562,30 @@ vzeroupper
# CHECK-NEXT: 1 8 0.50 * vpsignd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vpsignw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsllw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrad $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrad %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsraw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsraw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrlw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrlw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vpsubb %xmm0, %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: 175.00 175.00 - - - - - 146.58 171.08 198.25 527.08 -
+# CHECK-NEXT: 175.00 175.00 - - - - - 144.58 169.08 204.25 525.08 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2274,30 +2274,30 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsignd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsignw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpslld (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrad $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrad %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsraw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsraw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrld (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrlw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsubb %xmm0, %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 6bd2baaa3e237..19e411dfaef60 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
@@ -681,52 +681,52 @@ vpxor (%rax), %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: 1 1 0.25 vpslld $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpslld %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpslld (%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
# CHECK-NEXT: 1 2 1.00 vpslldq $1, %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsllq $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsllq %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpsllq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vpsllvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsllvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsllvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsllvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vpsllvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsllvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsllvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsllvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsllw $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsllw %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpsllw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrad $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsrad %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpsrad (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vpsravd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsravd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsravd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsravd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsraw $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsraw %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpsraw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrld $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsrld %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpsrld (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsllq $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsllq %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpsllq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsllvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsllvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 4.00 vpsllvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 4.00 * vpsllvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsllvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsllvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 4.00 vpsllvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 4.00 * vpsllvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsllw $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsllw %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpsllw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsrad $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsrad %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpsrad (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsravd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsravd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 4.00 vpsravd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 4.00 * vpsravd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsraw $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsraw %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpsraw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsrld $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsrld %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpsrld (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 1.00 vpsrldq $1, %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrlq $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsrlq %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpsrlq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vpsrlvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsrlvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsrlvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsrlvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vpsrlvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsrlvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsrlvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 0.50 * vpsrlvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrlw $1, %ymm0, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsrlw %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 9 1.00 * vpsrlw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsrlq $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 1 2.00 vpsrlq %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpsrlq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsrlvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsrlvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 4.00 vpsrlvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 4.00 * vpsrlvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsrlvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsrlvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 4.00 vpsrlvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 4.00 * vpsrlvq (%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
@@ -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 - - - - - 73.17 75.67 85.00 43.17 -
+# CHECK-NEXT: 67.00 67.00 - - - - - 71.17 123.67 105.00 41.17 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1003,52 +1003,52 @@ vpxor (%rax), %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.25 0.25 0.25 0.25 - vpslld $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslld %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpslld (%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
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslldq $1, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsllq $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllq %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsllq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsllvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsllvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsllvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsllvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsllvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsllvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsllvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsllvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsllw $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllw %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsllw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrad $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrad %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrad (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsravd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsravd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsravd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsravd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsraw $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsraw %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsraw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrld $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrld %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrld (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllq $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllq %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsllq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsllvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsllvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 - - - vpsllvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsllvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsllvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsllvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 - - - vpsllvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsllvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllw $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllw %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsllw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrad $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrad %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrad (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsravd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsravd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 - - - vpsravd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsravd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsraw $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsraw %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsraw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrld $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrld %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrld (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrldq $1, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlq $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlq %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrlq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsrlvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsrlvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsrlvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsrlvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsrlvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsrlvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpsrlvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpsrlvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlw $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlw %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrlw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlq $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlq %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrlq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsrlvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsrlvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 - - - vpsrlvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsrlvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 - - - vpsrlvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsrlvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 - - - vpsrlvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsrlvq (%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
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-mmx.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-mmx.s
index a7985768ab8db..cddb647b16041 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-mmx.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-mmx.s
@@ -217,30 +217,30 @@ pxor (%rax), %mm2
# CHECK-NEXT: 1 11 1.00 * pmullw (%rax), %mm2
# CHECK-NEXT: 1 1 0.25 por %mm0, %mm2
# CHECK-NEXT: 1 8 0.50 * por (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 pslld $1, %mm2
-# CHECK-NEXT: 1 1 0.25 pslld %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * pslld (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psllq $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psllq %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * psllq (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psllw $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psllw %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * psllw (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrad $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrad %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * psrad (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psraw $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psraw %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * psraw (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrld $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrld %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * psrld (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrlq $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrlq %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * psrlq (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrlw $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrlw %mm0, %mm2
-# CHECK-NEXT: 1 8 0.50 * psrlw (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 pslld $1, %mm2
+# CHECK-NEXT: 1 1 1.00 pslld %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * pslld (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psllq $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psllq %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psllq (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psllw $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psllw %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psllw (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrad $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrad %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrad (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psraw $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psraw %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psraw (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrld $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrld %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrld (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrlq $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrlq %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrlq (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrlw $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrlw %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrlw (%rax), %mm2
# CHECK-NEXT: 1 1 0.25 psubb %mm0, %mm2
# CHECK-NEXT: 1 8 0.50 * psubb (%rax), %mm2
# CHECK-NEXT: 1 1 0.25 psubd %mm0, %mm2
@@ -286,7 +286,7 @@ pxor (%rax), %mm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 24.00 24.00 - - - - - 27.25 24.25 28.25 21.25 -
+# CHECK-NEXT: 24.00 24.00 - - - - - 21.25 18.25 46.25 15.25 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -343,30 +343,30 @@ pxor (%rax), %mm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - pmullw (%rax), %mm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - por %mm0, %mm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - por (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pslld $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pslld %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - pslld (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psllq $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psllq %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psllq (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psllw $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psllw %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psllw (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrad $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrad %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psrad (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psraw $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psraw %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psraw (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrld $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrld %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psrld (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrlq $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrlq %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psrlq (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrlw $1, %mm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrlw %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psrlw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - pslld $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - pslld %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - pslld (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psllq $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psllq %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psllq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psllw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psllw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psllw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrad $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrad %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrad (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psraw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psraw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psraw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrld $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrld %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrld (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlq $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlq %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrlq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrlw (%rax), %mm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psubb %mm0, %mm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - psubb (%rax), %mm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psubd %mm0, %mm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
index e5ba24e3a3bcc..e9374b7feb506 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
@@ -594,30 +594,30 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 8 0.50 * pshufhw $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 pshuflw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * pshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 pslld $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 pslld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * pslld (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2
-# CHECK-NEXT: 1 1 0.25 psllq $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psllq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psllw $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psllw $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllw %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psllw (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psrad $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrad $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrad %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrad (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psraw $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psraw $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psraw %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psraw (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psrld $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrld (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2
-# CHECK-NEXT: 1 1 0.25 psrlq $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrlq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psrlw $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrlw $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlw %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrlw (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 psubb %xmm0, %xmm2
@@ -691,7 +691,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 66.50 66.50 - - - - - 56.92 48.42 79.75 157.92 -
+# CHECK-NEXT: 66.50 66.50 - - - - - 54.92 46.42 85.75 155.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -882,30 +882,30 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - pshufhw $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pshuflw $1, %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - pshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pslld $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - pslld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - pslld %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - pslld (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - pslldq $1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psllq $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psllq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psllq %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psllq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psllw $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psllw $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psllw %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psllw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrad $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrad $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrad %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrad (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psraw $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psraw $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psraw %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psraw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrld $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrld %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrld (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrldq $1, %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrlq $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlq %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrlq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrlw $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlw $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlw %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrlw (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psubb %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 d2565a2d967e4..0ccc0219941a7 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1562,30 +1562,30 @@ vzeroupper
# CHECK-NEXT: 1 8 0.33 * vpsignd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vpsignw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.33 * vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsllw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrad $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrad %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsraw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsraw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.25 vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.00 vpsrlw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrlw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vpsubb %xmm0, %xmm1, %xmm2
@@ -1739,7 +1739,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 137.92 165.42 194.25 471.42 -
+# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 135.92 163.42 200.25 469.42 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -2275,30 +2275,30 @@ vzeroupper
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vpsignd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsignw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpslld (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrad $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrad %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsraw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsraw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrld (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrlw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsubb %xmm0, %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 01831f5416c94..142d3e89bff6e 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
@@ -681,50 +681,50 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.33 * vpsignd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpsignw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.33 * vpsignw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpslld $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpslldq $1, %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsllq $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 0.50 vpsllvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vpsllvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsllvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 0.50 * vpsllvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 0.50 vpsllvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vpsllvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsllvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 0.50 * vpsllvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsllw $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsllvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsllvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 2.00 vpsllvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 2.00 * vpsllvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsllvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsllvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 2.00 vpsllvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 2.00 * vpsllvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpsllw $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsllw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsllw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrad $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpsrad $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrad %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsrad (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 0.50 vpsravd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vpsravd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsravd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 0.50 * vpsravd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsraw $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsravd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsravd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 2.00 vpsravd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 2.00 * vpsravd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpsraw $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsraw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsraw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrld $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpsrldq $1, %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrlq $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsrlq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 0.50 vpsrlvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vpsrlvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsrlvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 0.50 * vpsrlvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 0.50 vpsrlvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vpsrlvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsrlvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 0.50 * vpsrlvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.25 vpsrlw $1, %ymm0, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsrlvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsrlvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 2.00 vpsrlvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 2.00 * vpsrlvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 2.00 vpsrlvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpsrlvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 2.00 vpsrlvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 2.00 * vpsrlvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 1.00 vpsrlw $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrlw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsrlw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpsubb %ymm0, %ymm1, %ymm2
@@ -779,7 +779,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 44.67 44.67 44.67 - - - - - 70.17 75.17 85.00 42.67 -
+# CHECK-NEXT: 44.67 44.67 44.67 - - - - - 68.17 103.17 81.00 40.67 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -1004,50 +1004,50 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 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.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vpsignw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpslld $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpslld (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslldq $1, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsllq $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsllq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsllvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsllvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsllvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsllvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsllvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsllvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsllvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsllvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsllw $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsllvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsllvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsllvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsllvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsllvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsllvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsllvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsllvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllw $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsllw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrad $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrad $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrad %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrad (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsravd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsravd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsravd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsravd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsraw $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsravd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsravd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsravd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsravd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsraw $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsraw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsraw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrld $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrld (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrldq $1, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlq $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrlq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsrlvd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsrlvd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsrlvd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsrlvd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsrlvq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsrlvq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vpsrlvq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vpsrlvq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrlw $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsrlvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsrlvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsrlvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsrlvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsrlvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsrlvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - vpsrlvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 2.00 - - - vpsrlvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlw $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlw %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrlw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsubb %ymm0, %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s
index e6b0113907fb7..15561172b6bb5 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s
@@ -217,30 +217,30 @@ pxor (%rax), %mm2
# CHECK-NEXT: 1 11 1.00 * pmullw (%rax), %mm2
# CHECK-NEXT: 1 1 0.25 por %mm0, %mm2
# CHECK-NEXT: 1 8 0.33 * por (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 pslld $1, %mm2
-# CHECK-NEXT: 1 1 0.25 pslld %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * pslld (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psllq $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psllq %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * psllq (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psllw $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psllw %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * psllw (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrad $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrad %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * psrad (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psraw $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psraw %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * psraw (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrld $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrld %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * psrld (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrlq $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrlq %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * psrlq (%rax), %mm2
-# CHECK-NEXT: 1 1 0.25 psrlw $1, %mm2
-# CHECK-NEXT: 1 1 0.25 psrlw %mm0, %mm2
-# CHECK-NEXT: 1 8 0.33 * psrlw (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 pslld $1, %mm2
+# CHECK-NEXT: 1 1 1.00 pslld %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * pslld (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psllq $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psllq %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psllq (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psllw $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psllw %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psllw (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrad $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrad %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrad (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psraw $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psraw %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psraw (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrld $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrld %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrld (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrlq $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrlq %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrlq (%rax), %mm2
+# CHECK-NEXT: 1 1 1.00 psrlw $1, %mm2
+# CHECK-NEXT: 1 1 1.00 psrlw %mm0, %mm2
+# CHECK-NEXT: 1 8 1.00 * psrlw (%rax), %mm2
# CHECK-NEXT: 1 1 0.25 psubb %mm0, %mm2
# CHECK-NEXT: 1 8 0.33 * psubb (%rax), %mm2
# CHECK-NEXT: 1 1 0.25 psubd %mm0, %mm2
@@ -287,7 +287,7 @@ pxor (%rax), %mm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 16.00 16.00 16.00 - - - - - 27.25 24.25 28.25 21.25 -
+# CHECK-NEXT: 16.00 16.00 16.00 - - - - - 21.25 18.25 46.25 15.25 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -344,30 +344,30 @@ pxor (%rax), %mm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmullw (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - por %mm0, %mm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - por (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pslld $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pslld %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pslld (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllq $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllq %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psllq (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllw $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllw %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psllw (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrad $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrad %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrad (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psraw $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psraw %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psraw (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrld $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrld %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrld (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlq $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlq %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrlq (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlw $1, %mm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlw %mm0, %mm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrlw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslld $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslld %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - pslld (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllq $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllq %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllw %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrad $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrad %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrad (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psraw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psraw %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psraw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrld $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrld %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrld (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlq $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlq %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlw %mm0, %mm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlw (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubb %mm0, %mm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubb (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubd %mm0, %mm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
index 60eea89f7f538..e9d04ea092b5e 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
@@ -594,30 +594,30 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 8 0.33 * pshufhw $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 pshuflw $1, %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.33 * pshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 pslld $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 pslld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * pslld (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 pslldq $1, %xmm2
-# CHECK-NEXT: 1 1 0.25 psllq $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psllq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psllw $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psllw $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllw %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psllw (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psrad $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrad $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrad %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrad (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psraw $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psraw $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psraw %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psraw (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psrld $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrld (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 psrldq $1, %xmm2
-# CHECK-NEXT: 1 1 0.25 psrlq $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrlq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.25 psrlw $1, %xmm2
+# CHECK-NEXT: 1 1 1.00 psrlw $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlw %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrlw (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 psubb %xmm0, %xmm2
@@ -692,7 +692,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 55.92 49.92 81.25 156.92 -
+# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 53.92 47.92 87.25 154.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -883,30 +883,30 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufhw $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pshuflw $1, %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pslld $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslld %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - pslld (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslldq $1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllq $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllq %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllw $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllw $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllw %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrad $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrad $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrad %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrad (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psraw $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psraw $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psraw %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psraw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrld $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrld %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrld (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrldq $1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlq $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlq %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlw $1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlw $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlw %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlw (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubb %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s b/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
index ae84c48bbf6c9..b556fd61f0778 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
@@ -173,6 +173,7 @@ movq %mm7, %mm0
# CHECK-NEXT: [9,2] . . . D==============================================================eER . movq %mm2, %mm3
# CHECK-NEXT: [9,3] . . . D===============================================================eER. movq %mm3, %mm4
# CHECK-NEXT: [9,4] . . . D===============================================================eER movq %mm4, %mm5
+# CHECK-NEXT: Truncated display due to cycle limit
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
diff --git a/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s b/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
index 1bbfb9ba120e4..de59edf2352ef 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
@@ -183,6 +183,7 @@ fxch %st(0)
# CHECK-NEXT: [8,5] . . . D================================================================eER fxch %st(5)
# CHECK-NEXT: [8,6] . . . D===============================================================eER fxch %st(6)
# CHECK-NEXT: [8,7] . . . D===============================================================eER fxch %st(7)
+# CHECK-NEXT: Truncated display due to cycle limit
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
More information about the llvm-commits
mailing list