[llvm] 896557e - [X86] Adjust fadd costs to match SoG
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun May 15 13:28:37 PDT 2022
Author: Simon Pilgrim
Date: 2022-05-15T21:28:29+01:00
New Revision: 896557e129c2ca74c8f87ed56e4fc37958eaa130
URL: https://github.com/llvm/llvm-project/commit/896557e129c2ca74c8f87ed56e4fc37958eaa130
DIFF: https://github.com/llvm/llvm-project/commit/896557e129c2ca74c8f87ed56e4fc37958eaa130.diff
LOG: [X86] Adjust fadd costs to match SoG
znver1/2 models were incorrectly modelling these on fpupipe 0 instead of 2/3 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-sse1.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 805ba115e0695..c1be7141dfb6c 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -276,13 +276,13 @@ defm : X86WriteRes<WriteFMoveX, [ZnFPU], 1, [1], 1>;
defm : X86WriteRes<WriteFMoveY, [ZnFPU], 1, [1], 1>;
defm : X86WriteResUnsupported<WriteFMoveZ>;
-defm : ZnWriteResFpuPair<WriteFAdd, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFAddX, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFAddY, [ZnFPU0], 3>;
+defm : ZnWriteResFpuPair<WriteFAdd, [ZnFPU23], 3>;
+defm : ZnWriteResFpuPair<WriteFAddX, [ZnFPU23], 3>;
+defm : ZnWriteResFpuPair<WriteFAddY, [ZnFPU23], 3, [2], 2>;
defm : X86WriteResPairUnsupported<WriteFAddZ>;
-defm : ZnWriteResFpuPair<WriteFAdd64, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFAdd64X, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFAdd64Y, [ZnFPU0], 3>;
+defm : ZnWriteResFpuPair<WriteFAdd64, [ZnFPU23], 3>;
+defm : ZnWriteResFpuPair<WriteFAdd64X, [ZnFPU23], 3>;
+defm : ZnWriteResFpuPair<WriteFAdd64Y, [ZnFPU23], 3, [2], 2>;
defm : X86WriteResPairUnsupported<WriteFAdd64Z>;
defm : ZnWriteResFpuPair<WriteFCmp, [ZnFPU01], 1>;
defm : ZnWriteResFpuPair<WriteFCmpX, [ZnFPU01], 1>;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 4cf4d0f08a594..0c28830074aaf 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -275,13 +275,13 @@ defm : X86WriteRes<WriteFMoveX, [Zn2FPU], 1, [1], 1>;
defm : X86WriteRes<WriteFMoveY, [Zn2FPU], 1, [1], 1>;
defm : X86WriteResUnsupported<WriteFMoveZ>;
-defm : Zn2WriteResFpuPair<WriteFAdd, [Zn2FPU0], 3>;
-defm : Zn2WriteResFpuPair<WriteFAddX, [Zn2FPU0], 3>;
-defm : Zn2WriteResFpuPair<WriteFAddY, [Zn2FPU0], 3>;
+defm : Zn2WriteResFpuPair<WriteFAdd, [Zn2FPU23], 3>;
+defm : Zn2WriteResFpuPair<WriteFAddX, [Zn2FPU23], 3>;
+defm : Zn2WriteResFpuPair<WriteFAddY, [Zn2FPU23], 3>;
defm : X86WriteResPairUnsupported<WriteFAddZ>;
-defm : Zn2WriteResFpuPair<WriteFAdd64, [Zn2FPU0], 3>;
-defm : Zn2WriteResFpuPair<WriteFAdd64X, [Zn2FPU0], 3>;
-defm : Zn2WriteResFpuPair<WriteFAdd64Y, [Zn2FPU0], 3>;
+defm : Zn2WriteResFpuPair<WriteFAdd64, [Zn2FPU23], 3>;
+defm : Zn2WriteResFpuPair<WriteFAdd64X, [Zn2FPU23], 3>;
+defm : Zn2WriteResFpuPair<WriteFAdd64Y, [Zn2FPU23], 3>;
defm : X86WriteResPairUnsupported<WriteFAdd64Z>;
defm : Zn2WriteResFpuPair<WriteFCmp, [Zn2FPU01], 1>;
defm : Zn2WriteResFpuPair<WriteFCmpX, [Zn2FPU01], 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 1f10df4a1cbb6..77e9c01139584 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1030,26 +1030,26 @@ vzeroupper
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vaddsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 4 0.50 vaesdec %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 11 0.50 * vaesdec (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 0.50 vaesdeclast %xmm0, %xmm1, %xmm2
@@ -1671,18 +1671,18 @@ vzeroupper
# CHECK-NEXT: 1 20 20.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 27 20.00 * vsqrtss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 100 0.25 * U vstmxcsr (%rax)
-# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vtestpd %xmm0, %xmm1
# CHECK-NEXT: 1 8 0.50 * vtestpd (%rax), %xmm1
# CHECK-NEXT: 1 1 0.25 vtestpd %ymm0, %ymm1
@@ -1738,30 +1738,30 @@ 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 - - - - - 178.58 171.08 176.25 505.08 -
+# CHECK-NEXT: 175.00 175.00 - - - - - 146.58 171.08 198.25 527.08 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vaddsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vaddsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - vaddsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vaesdec %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vaesdec (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vaesdeclast %xmm0, %xmm1, %xmm2
@@ -2383,18 +2383,18 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - - 20.00 - vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 20.00 - vsqrtss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - vstmxcsr (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vsubsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - vsubss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vtestpd %xmm0, %xmm1
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vtestpd (%rax), %xmm1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vtestpd %ymm0, %ymm1
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
index 9ab0ec579993b..ea4bafe3332d8 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
@@ -194,10 +194,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 addps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 addss %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addss (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addps %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addps (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addss %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addss (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andnps %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * andnps (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andps %xmm0, %xmm2
@@ -306,10 +306,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 20 20.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtss (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * U stmxcsr (%rax)
-# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subss (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subps %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subps (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subss %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subss (%rax), %xmm2
# CHECK-NEXT: 2 3 1.00 ucomiss %xmm0, %xmm1
# CHECK-NEXT: 2 10 1.00 * ucomiss (%rax), %xmm1
# CHECK-NEXT: 1 1 0.50 unpckhps %xmm0, %xmm2
@@ -335,14 +335,14 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 32.50 32.50 - - - - - 33.00 29.50 26.00 108.50 -
+# CHECK-NEXT: 32.50 32.50 - - - - - 25.00 29.50 30.00 112.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
-# CHECK-NEXT: - - - - - - - 1.00 - - - - addps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - addps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - addss %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - addss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - addps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - addps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - addss %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - addss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - andnps %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - andnps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - andps %xmm0, %xmm2
@@ -451,10 +451,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 20.00 - sqrtss %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 20.00 - sqrtss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - stmxcsr (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - subps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - subps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - subss %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - subss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - subps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - subps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - subss %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - subss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - ucomiss %xmm0, %xmm1
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - ucomiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - unpckhps %xmm0, %xmm2
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 09fd7cb7ed724..e5ba24e3a3bcc 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
@@ -407,10 +407,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 addpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 addsd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addsd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addpd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addpd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addsd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andnpd %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * andnpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andpd %xmm0, %xmm2
@@ -662,10 +662,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtpd (%rax), %xmm2
# CHECK-NEXT: 1 20 20.00 sqrtsd %xmm0, %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtsd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 subpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 subsd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subsd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subpd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subpd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subsd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subsd (%rax), %xmm2
# CHECK-NEXT: 2 3 1.00 ucomisd %xmm0, %xmm1
# CHECK-NEXT: 2 10 1.00 * ucomisd (%rax), %xmm1
# CHECK-NEXT: 1 1 0.50 unpckhpd %xmm0, %xmm2
@@ -691,14 +691,14 @@ 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 - - - - - 64.92 48.42 75.75 153.92 -
+# CHECK-NEXT: 66.50 66.50 - - - - - 56.92 48.42 79.75 157.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
-# CHECK-NEXT: - - - - - - - 1.00 - - - - addpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - addpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - addsd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - addsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - addpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - addpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - addsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - addsd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - andnpd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - andnpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - andpd %xmm0, %xmm2
@@ -950,10 +950,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 20.00 - sqrtpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 20.00 - sqrtsd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 20.00 - sqrtsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - subpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - subpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - subsd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - subsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - subpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - subpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - subsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - subsd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - ucomisd %xmm0, %xmm1
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - ucomisd (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - unpckhpd %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
index 8e05fcfc9df62..dc81366a94cff 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
@@ -43,10 +43,10 @@ mwait
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 addsubpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addsubpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 addsubps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addsubps (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addsubpd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addsubpd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addsubps %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addsubps (%rax), %xmm2
# CHECK-NEXT: 1 7 0.25 haddpd %xmm0, %xmm2
# CHECK-NEXT: 1 14 0.50 * haddpd (%rax), %xmm2
# CHECK-NEXT: 1 7 0.25 haddps %xmm0, %xmm2
@@ -81,14 +81,14 @@ mwait
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 4.50 4.50 - - - - - 4.00 2.00 2.00 - -
+# CHECK-NEXT: 4.50 4.50 - - - - - - 2.00 4.00 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
-# CHECK-NEXT: - - - - - - - 1.00 - - - - addsubpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - addsubpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - addsubps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - addsubps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - addsubpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - addsubpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - addsubps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - addsubps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - haddpd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - haddpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - haddps %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
index 0f7807eb3e79d..d6781fc1d78fe 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
@@ -208,14 +208,14 @@ fyl2xp1
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 100 0.25 U f2xm1
# CHECK-NEXT: 1 2 1.00 U fabs
-# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fadd %st(2), %st
-# CHECK-NEXT: 1 10 1.00 * U fadds (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U faddl (%ecx)
-# CHECK-NEXT: 1 3 1.00 U faddp %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U faddp %st, %st(2)
-# CHECK-NEXT: 1 10 1.00 * U fiadds (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fiaddl (%ecx)
+# CHECK-NEXT: 1 3 0.50 U fadd %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fadd %st(2), %st
+# CHECK-NEXT: 1 10 0.50 * U fadds (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U faddl (%ecx)
+# CHECK-NEXT: 1 3 0.50 U faddp %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U faddp %st, %st(2)
+# CHECK-NEXT: 1 10 0.50 * U fiadds (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fiaddl (%ecx)
# CHECK-NEXT: 1 100 0.25 * U fbld (%ecx)
# CHECK-NEXT: 1 100 0.25 * U fbstp (%eax)
# CHECK-NEXT: 1 1 1.00 U fchs
@@ -321,22 +321,22 @@ fyl2xp1
# CHECK-NEXT: 1 100 0.25 * U frstor (%eax)
# CHECK-NEXT: 1 1 1.00 U wait
# CHECK-NEXT: 1 100 0.25 * U fnsave (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsub %st(2), %st
-# CHECK-NEXT: 1 10 1.00 * U fsubs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fsubl (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsubp %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsubp %st, %st(2)
-# CHECK-NEXT: 1 10 1.00 * U fisubs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fisubl (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsubr %st(2), %st
-# CHECK-NEXT: 1 10 1.00 * U fsubrs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fsubrl (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsubrp %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsubrp %st, %st(2)
-# CHECK-NEXT: 1 10 1.00 * U fisubrs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fisubrl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsub %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsub %st(2), %st
+# CHECK-NEXT: 1 10 0.50 * U fsubs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fsubl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsubp %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsubp %st, %st(2)
+# CHECK-NEXT: 1 10 0.50 * U fisubs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fisubl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsubr %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsubr %st(2), %st
+# CHECK-NEXT: 1 10 0.50 * U fsubrs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fsubrl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsubrp %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsubrp %st, %st(2)
+# CHECK-NEXT: 1 10 0.50 * U fisubrs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fisubrl (%eax)
# CHECK-NEXT: 1 1 1.00 U ftst
# CHECK-NEXT: 1 1 1.00 U fucom %st(1)
# CHECK-NEXT: 1 1 1.00 U fucom %st(3)
@@ -371,20 +371,20 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 32.50 32.50 - - - - - 54.50 6.00 8.00 64.50 -
+# CHECK-NEXT: 32.50 32.50 - - - - - 30.50 6.00 20.00 76.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - f2xm1
# CHECK-NEXT: - - - - - - - - - - 1.00 - fabs
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fadd %st, %st(1)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fadd %st(2), %st
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fadds (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - faddl (%ecx)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - faddp %st, %st(1)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - faddp %st, %st(2)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fiadds (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fiaddl (%ecx)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fadd %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fadd %st(2), %st
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fadds (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - faddl (%ecx)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - faddp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - faddp %st, %st(2)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fiadds (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fiaddl (%ecx)
# CHECK-NEXT: - - - - - - - - - - - - fbld (%ecx)
# CHECK-NEXT: - - - - - - - - - - - - fbstp (%eax)
# CHECK-NEXT: - - - - - - - - - - 1.00 - fchs
@@ -490,22 +490,22 @@ fyl2xp1
# CHECK-NEXT: - - - - - - - - - - - - frstor (%eax)
# CHECK-NEXT: - - - - - - - 1.00 - - - - wait
# CHECK-NEXT: - - - - - - - - - - - - fnsave (%eax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsub %st, %st(1)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsub %st(2), %st
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubs (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubl (%eax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubp %st, %st(1)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubp %st, %st(2)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubs (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubl (%eax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubr %st, %st(1)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubr %st(2), %st
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubrs (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubrl (%eax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubrp %st, %st(1)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubrp %st, %st(2)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubrs (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubrl (%eax)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsub %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsub %st(2), %st
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fsubs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fsubl (%eax)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsubp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsubp %st, %st(2)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisubs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisubl (%eax)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsubr %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsubr %st(2), %st
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fsubrs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fsubrl (%eax)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsubrp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fsubrp %st, %st(2)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisubrs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisubrl (%eax)
# CHECK-NEXT: - - - - - - - 1.00 - - - - ftst
# CHECK-NEXT: - - - - - - - 1.00 - - - - fucom %st(1)
# CHECK-NEXT: - - - - - - - 1.00 - - - - fucom %st(3)
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 16003db96e666..d2565a2d967e4 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1030,26 +1030,26 @@ vzeroupper
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vaddsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vaddsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 4 0.50 vaesdec %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 11 0.50 * vaesdec (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 0.50 vaesdeclast %xmm0, %xmm1, %xmm2
@@ -1671,18 +1671,18 @@ vzeroupper
# CHECK-NEXT: 1 20 20.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 27 20.00 * vsqrtss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 100 0.25 * U vstmxcsr (%rax)
-# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 0.50 vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 0.50 vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vsubss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vtestpd %xmm0, %xmm1
# CHECK-NEXT: 1 8 0.33 * vtestpd (%rax), %xmm1
# CHECK-NEXT: 1 1 0.25 vtestpd %ymm0, %ymm1
@@ -1739,30 +1739,30 @@ 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 - 169.92 165.42 178.25 455.42 -
+# 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: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vaddsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vaesdec %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vaesdec (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vaesdeclast %xmm0, %xmm1, %xmm2
@@ -2384,18 +2384,18 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - - - 20.00 - vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - vsqrtss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - vstmxcsr (%rax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vsubsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - vsubss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vtestpd %xmm0, %xmm1
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vtestpd (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vtestpd %ymm0, %ymm1
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
index 5228dc7e1084a..34d2df5ccca36 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
@@ -194,10 +194,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 addps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 addss %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addss (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addps %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addps (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addss %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addss (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andnps %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.33 * andnps (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andps %xmm0, %xmm2
@@ -306,10 +306,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 20 20.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtss (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * U stmxcsr (%rax)
-# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subss (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subps %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subps (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subss %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subss (%rax), %xmm2
# CHECK-NEXT: 2 3 1.00 ucomiss %xmm0, %xmm1
# CHECK-NEXT: 2 10 1.00 * ucomiss (%rax), %xmm1
# CHECK-NEXT: 1 1 0.50 unpckhps %xmm0, %xmm2
@@ -336,14 +336,14 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 33.00 29.50 26.00 108.50 -
+# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 25.00 29.50 30.00 112.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - addps %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - addss %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - addps %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - addps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - addss %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - addss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andnps %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andnps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andps %xmm0, %xmm2
@@ -452,10 +452,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - 20.00 - sqrtss %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - stmxcsr (%rax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - subps %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - subss %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - subps %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - subps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - subss %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - subss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - ucomiss %xmm0, %xmm1
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - ucomiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpckhps %xmm0, %xmm2
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 defe7e6c155c5..60eea89f7f538 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
@@ -407,10 +407,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 addpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 addsd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addsd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addpd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addpd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addsd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andnpd %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.33 * andnpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andpd %xmm0, %xmm2
@@ -662,10 +662,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtpd (%rax), %xmm2
# CHECK-NEXT: 1 20 20.00 sqrtsd %xmm0, %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtsd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 subpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 subsd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * subsd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subpd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subpd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 subsd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * subsd (%rax), %xmm2
# CHECK-NEXT: 2 3 1.00 ucomisd %xmm0, %xmm1
# CHECK-NEXT: 2 10 1.00 * ucomisd (%rax), %xmm1
# CHECK-NEXT: 1 1 0.50 unpckhpd %xmm0, %xmm2
@@ -692,14 +692,14 @@ 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 - - - - - 63.92 49.92 77.25 152.92 -
+# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 55.92 49.92 81.25 156.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - addpd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - addsd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - addpd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - addpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - addsd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - addsd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andnpd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andnpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andpd %xmm0, %xmm2
@@ -951,10 +951,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - 20.00 - sqrtsd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - subpd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - subsd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - subpd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - subpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - subsd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - subsd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - ucomisd %xmm0, %xmm1
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - ucomisd (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpckhpd %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
index 4c250d4b3a49e..fa1b2387aabfd 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
@@ -43,10 +43,10 @@ mwait
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 addsubpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addsubpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 addsubps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * addsubps (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addsubpd %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addsubpd (%rax), %xmm2
+# CHECK-NEXT: 1 3 0.50 addsubps %xmm0, %xmm2
+# CHECK-NEXT: 1 10 0.50 * addsubps (%rax), %xmm2
# CHECK-NEXT: 1 7 0.25 haddpd %xmm0, %xmm2
# CHECK-NEXT: 1 14 0.33 * haddpd (%rax), %xmm2
# CHECK-NEXT: 1 7 0.25 haddps %xmm0, %xmm2
@@ -82,14 +82,14 @@ mwait
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 3.00 3.00 3.00 - - - - - 4.00 2.00 2.00 - -
+# CHECK-NEXT: 3.00 3.00 3.00 - - - - - - 2.00 4.00 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - addsubpd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsubpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - addsubps %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsubps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - addsubpd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - addsubpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - addsubps %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - addsubps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - haddpd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - haddpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - haddps %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
index 55e646c79275a..d9f7e01e074fe 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
@@ -208,14 +208,14 @@ fyl2xp1
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 100 0.25 U f2xm1
# CHECK-NEXT: 1 2 1.00 U fabs
-# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fadd %st(2), %st
-# CHECK-NEXT: 1 10 1.00 * U fadds (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U faddl (%ecx)
-# CHECK-NEXT: 1 3 1.00 U faddp %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U faddp %st, %st(2)
-# CHECK-NEXT: 1 10 1.00 * U fiadds (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fiaddl (%ecx)
+# CHECK-NEXT: 1 3 0.50 U fadd %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fadd %st(2), %st
+# CHECK-NEXT: 1 10 0.50 * U fadds (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U faddl (%ecx)
+# CHECK-NEXT: 1 3 0.50 U faddp %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U faddp %st, %st(2)
+# CHECK-NEXT: 1 10 0.50 * U fiadds (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fiaddl (%ecx)
# CHECK-NEXT: 1 100 0.25 * U fbld (%ecx)
# CHECK-NEXT: 1 100 0.25 * U fbstp (%eax)
# CHECK-NEXT: 1 1 1.00 U fchs
@@ -321,22 +321,22 @@ fyl2xp1
# CHECK-NEXT: 1 100 0.25 * U frstor (%eax)
# CHECK-NEXT: 1 1 1.00 U wait
# CHECK-NEXT: 1 100 0.25 * U fnsave (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsub %st(2), %st
-# CHECK-NEXT: 1 10 1.00 * U fsubs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fsubl (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsubp %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsubp %st, %st(2)
-# CHECK-NEXT: 1 10 1.00 * U fisubs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fisubl (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsubr %st(2), %st
-# CHECK-NEXT: 1 10 1.00 * U fsubrs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fsubrl (%eax)
-# CHECK-NEXT: 1 3 1.00 U fsubrp %st, %st(1)
-# CHECK-NEXT: 1 3 1.00 U fsubrp %st, %st(2)
-# CHECK-NEXT: 1 10 1.00 * U fisubrs (%ecx)
-# CHECK-NEXT: 1 10 1.00 * U fisubrl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsub %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsub %st(2), %st
+# CHECK-NEXT: 1 10 0.50 * U fsubs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fsubl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsubp %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsubp %st, %st(2)
+# CHECK-NEXT: 1 10 0.50 * U fisubs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fisubl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsubr %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsubr %st(2), %st
+# CHECK-NEXT: 1 10 0.50 * U fsubrs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fsubrl (%eax)
+# CHECK-NEXT: 1 3 0.50 U fsubrp %st, %st(1)
+# CHECK-NEXT: 1 3 0.50 U fsubrp %st, %st(2)
+# CHECK-NEXT: 1 10 0.50 * U fisubrs (%ecx)
+# CHECK-NEXT: 1 10 0.50 * U fisubrl (%eax)
# CHECK-NEXT: 1 1 1.00 U ftst
# CHECK-NEXT: 1 1 1.00 U fucom %st(1)
# CHECK-NEXT: 1 1 1.00 U fucom %st(3)
@@ -372,20 +372,20 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 54.50 6.00 8.00 64.50 -
+# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 30.50 6.00 20.00 76.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - f2xm1
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fabs
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fadd %st, %st(1)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fadd %st(2), %st
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fadds (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - faddl (%ecx)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - faddp %st, %st(1)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - faddp %st, %st(2)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fiadds (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fiaddl (%ecx)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fadd %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fadd %st(2), %st
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fadds (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - faddl (%ecx)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - faddp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - faddp %st, %st(2)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fiadds (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fiaddl (%ecx)
# CHECK-NEXT: - - - - - - - - - - - - - fbld (%ecx)
# CHECK-NEXT: - - - - - - - - - - - - - fbstp (%eax)
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fchs
@@ -491,22 +491,22 @@ fyl2xp1
# CHECK-NEXT: - - - - - - - - - - - - - frstor (%eax)
# CHECK-NEXT: - - - - - - - - 1.00 - - - - wait
# CHECK-NEXT: - - - - - - - - - - - - - fnsave (%eax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsub %st, %st(1)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsub %st(2), %st
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubl (%eax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubp %st, %st(1)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubp %st, %st(2)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubl (%eax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubr %st, %st(1)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubr %st(2), %st
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubrs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubrl (%eax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubrp %st, %st(1)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubrp %st, %st(2)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubrs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubrl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsub %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsub %st(2), %st
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fsubs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fsubl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsubp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsubp %st, %st(2)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisubs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisubl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsubr %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsubr %st(2), %st
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fsubrs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fsubrl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsubrp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fsubrp %st, %st(2)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisubrs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisubrl (%eax)
# CHECK-NEXT: - - - - - - - - 1.00 - - - - ftst
# CHECK-NEXT: - - - - - - - - 1.00 - - - - fucom %st(1)
# CHECK-NEXT: - - - - - - - - 1.00 - - - - fucom %st(3)
diff --git a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
index e0aeca6ecb7a3..09a47e7747e44 100644
--- a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
@@ -47,7 +47,7 @@ vfmadd213ps (%rdi), %xmm1, %xmm2
# ZNVER1: Dispatch Width: 4
# ZNVER1-NEXT: uOps Per Cycle: 0.13
# ZNVER1-NEXT: IPC: 0.13
-# ZNVER1-NEXT: Block RThroughput: 1.0
+# ZNVER1-NEXT: Block RThroughput: 0.5
# ALL: Timeline view:
diff --git a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
index 55c217c17493c..cf1d6847384df 100644
--- a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
@@ -47,7 +47,7 @@ vfmadd213ps (%rdi), %xmm1, %xmm2
# ZNVER1: Dispatch Width: 4
# ZNVER1-NEXT: uOps Per Cycle: 0.13
# ZNVER1-NEXT: IPC: 0.13
-# ZNVER1-NEXT: Block RThroughput: 1.0
+# ZNVER1-NEXT: Block RThroughput: 0.5
# ALL: Timeline view:
diff --git a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
index 596c758c3ca36..bcf9e155943dc 100644
--- a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
@@ -90,12 +90,12 @@ vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: Dispatch Width: 4
# ZNVER1-NEXT: uOps Per Cycle: 0.18
# ZNVER1-NEXT: IPC: 0.18
-# ZNVER1-NEXT: Block RThroughput: 1.0
+# ZNVER1-NEXT: Block RThroughput: 0.5
# ZNVER2: Dispatch Width: 4
# ZNVER2-NEXT: uOps Per Cycle: 0.18
# ZNVER2-NEXT: IPC: 0.18
-# ZNVER2-NEXT: Block RThroughput: 1.0
+# ZNVER2-NEXT: Block RThroughput: 0.5
# BDVER2: Timeline view:
# BDVER2-NEXT: Index 0123456789
diff --git a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
index dbbd54b6970df..56e5693c1fdd7 100644
--- a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
@@ -90,12 +90,12 @@ vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: Dispatch Width: 4
# ZNVER1-NEXT: uOps Per Cycle: 0.18
# ZNVER1-NEXT: IPC: 0.18
-# ZNVER1-NEXT: Block RThroughput: 1.0
+# ZNVER1-NEXT: Block RThroughput: 0.5
# ZNVER2: Dispatch Width: 4
# ZNVER2-NEXT: uOps Per Cycle: 0.18
# ZNVER2-NEXT: IPC: 0.18
-# ZNVER2-NEXT: Block RThroughput: 1.0
+# ZNVER2-NEXT: Block RThroughput: 0.5
# BDVER2: Timeline view:
# BDVER2-NEXT: Index 0123456789
More information about the llvm-commits
mailing list