[llvm] a305d8f - [X86] Adjust fsetcc/fmin/fmax costs to match SoG (Issue #54889)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 14 05:28:23 PDT 2022
Author: Simon Pilgrim
Date: 2022-04-14T13:27:33+01:00
New Revision: a305d8f44ec8e91739c1f1e714cbfd19acc80489
URL: https://github.com/llvm/llvm-project/commit/a305d8f44ec8e91739c1f1e714cbfd19acc80489
DIFF: https://github.com/llvm/llvm-project/commit/a305d8f44ec8e91739c1f1e714cbfd19acc80489.diff
LOG: [X86] Adjust fsetcc/fmin/fmax costs to match SoG (Issue #54889)
znver1/2 models were incorrectly modelling these as 3 cycle latency instructions on the wrong pipe 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/Znver2/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 45a6af4ad2d27..a7e0a336fcb37 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -284,16 +284,16 @@ defm : ZnWriteResFpuPair<WriteFAdd64, [ZnFPU0], 3>;
defm : ZnWriteResFpuPair<WriteFAdd64X, [ZnFPU0], 3>;
defm : ZnWriteResFpuPair<WriteFAdd64Y, [ZnFPU0], 3>;
defm : X86WriteResPairUnsupported<WriteFAdd64Z>;
-defm : ZnWriteResFpuPair<WriteFCmp, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFCmpX, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFCmpY, [ZnFPU0], 3>;
+defm : ZnWriteResFpuPair<WriteFCmp, [ZnFPU01], 1>;
+defm : ZnWriteResFpuPair<WriteFCmpX, [ZnFPU01], 1>;
+defm : ZnWriteResFpuPair<WriteFCmpY, [ZnFPU01], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteFCmpZ>;
-defm : ZnWriteResFpuPair<WriteFCmp64, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFCmp64X, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFCmp64Y, [ZnFPU0], 3>;
+defm : ZnWriteResFpuPair<WriteFCmp64, [ZnFPU01], 1>;
+defm : ZnWriteResFpuPair<WriteFCmp64X, [ZnFPU01], 1>;
+defm : ZnWriteResFpuPair<WriteFCmp64Y, [ZnFPU01], 1, [2], 2>;
defm : X86WriteResPairUnsupported<WriteFCmp64Z>;
-defm : ZnWriteResFpuPair<WriteFCom, [ZnFPU0], 3>;
-defm : ZnWriteResFpuPair<WriteFComX, [ZnFPU0], 3>;
+defm : ZnWriteResFpuPair<WriteFCom, [ZnFPU01,ZnFPU2], 3, [1,1], 2>;
+defm : ZnWriteResFpuPair<WriteFComX, [ZnFPU01,ZnFPU2], 3, [1,1], 2>;
defm : ZnWriteResFpuPair<WriteFBlend, [ZnFPU01], 1>;
defm : ZnWriteResFpuPair<WriteFBlendY, [ZnFPU01], 1>;
defm : X86WriteResPairUnsupported<WriteFBlendZ>;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 9bb8e7c38fb1d..2103169fc7659 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -283,16 +283,16 @@ defm : Zn2WriteResFpuPair<WriteFAdd64, [Zn2FPU0], 3>;
defm : Zn2WriteResFpuPair<WriteFAdd64X, [Zn2FPU0], 3>;
defm : Zn2WriteResFpuPair<WriteFAdd64Y, [Zn2FPU0], 3>;
defm : X86WriteResPairUnsupported<WriteFAdd64Z>;
-defm : Zn2WriteResFpuPair<WriteFCmp, [Zn2FPU0], 1>;
-defm : Zn2WriteResFpuPair<WriteFCmpX, [Zn2FPU0], 1>;
-defm : Zn2WriteResFpuPair<WriteFCmpY, [Zn2FPU0], 1>;
+defm : Zn2WriteResFpuPair<WriteFCmp, [Zn2FPU01], 1>;
+defm : Zn2WriteResFpuPair<WriteFCmpX, [Zn2FPU01], 1>;
+defm : Zn2WriteResFpuPair<WriteFCmpY, [Zn2FPU01], 1>;
defm : X86WriteResPairUnsupported<WriteFCmpZ>;
-defm : Zn2WriteResFpuPair<WriteFCmp64, [Zn2FPU0], 1>;
-defm : Zn2WriteResFpuPair<WriteFCmp64X, [Zn2FPU0], 1>;
-defm : Zn2WriteResFpuPair<WriteFCmp64Y, [Zn2FPU0], 1>;
+defm : Zn2WriteResFpuPair<WriteFCmp64, [Zn2FPU01], 1>;
+defm : Zn2WriteResFpuPair<WriteFCmp64X, [Zn2FPU01], 1>;
+defm : Zn2WriteResFpuPair<WriteFCmp64Y, [Zn2FPU01], 1>;
defm : X86WriteResPairUnsupported<WriteFCmp64Z>;
-defm : Zn2WriteResFpuPair<WriteFCom, [Zn2FPU0], 3>;
-defm : Zn2WriteResFpuPair<WriteFComX, [Zn2FPU0], 3>;
+defm : Zn2WriteResFpuPair<WriteFCom, [Zn2FPU01,Zn2FPU2], 3, [1,1], 2>;
+defm : Zn2WriteResFpuPair<WriteFComX, [Zn2FPU01,Zn2FPU2], 3, [1,1], 2>;
defm : Zn2WriteResFpuPair<WriteFBlend, [Zn2FPU01], 1>;
defm : Zn2WriteResFpuPair<WriteFBlendY, [Zn2FPU01], 1>;
defm : X86WriteResPairUnsupported<WriteFBlendZ>;
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 f41b1d6942b25..7173135e7aebc 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1098,22 +1098,22 @@ vzeroupper
# CHECK-NEXT: 1 8 0.50 * vbroadcastsd (%rax), %ymm2
# CHECK-NEXT: 1 8 0.50 * vbroadcastss (%rax), %xmm2
# CHECK-NEXT: 1 8 0.50 * vbroadcastss (%rax), %ymm2
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vcmpeqpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vcmpeqpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vcmpeqps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vcmpeqps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vcmpeqsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vcmpeqsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcmpeqss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vcmpeqss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcomisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vcomisd (%rax), %xmm1
-# CHECK-NEXT: 1 3 1.00 vcomiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vcomiss (%rax), %xmm1
+# CHECK-NEXT: 1 1 0.50 vcmpeqpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vcomisd %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vcomisd (%rax), %xmm1
+# CHECK-NEXT: 2 3 1.00 vcomiss %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vcomiss (%rax), %xmm1
# CHECK-NEXT: 1 5 1.00 vcvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 1 12 1.00 * vcvtdq2pd (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 vcvtdq2pd %xmm0, %ymm2
@@ -1228,30 +1228,30 @@ vzeroupper
# CHECK-NEXT: 2 8 1.00 * vmaskmovps (%rax), %ymm0, %ymm2
# CHECK-NEXT: 1 4 0.50 * * vmaskmovps %xmm0, %xmm1, (%rax)
# CHECK-NEXT: 2 5 1.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: 1 3 1.00 vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vmaxpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vmaxps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmaxss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vminpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 10 1.00 * vminps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vmovapd %xmm0, %xmm2
# CHECK-NEXT: 1 1 0.50 * vmovapd %xmm0, (%rax)
# CHECK-NEXT: 1 8 0.50 * vmovapd (%rax), %xmm2
@@ -1691,10 +1691,10 @@ vzeroupper
# CHECK-NEXT: 1 8 0.50 * vtestps (%rax), %xmm1
# CHECK-NEXT: 1 1 0.25 vtestps %ymm0, %ymm1
# CHECK-NEXT: 1 8 0.50 * vtestps (%rax), %ymm1
-# CHECK-NEXT: 1 3 1.00 vucomisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vucomisd (%rax), %xmm1
-# CHECK-NEXT: 1 3 1.00 vucomiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vucomiss (%rax), %xmm1
+# CHECK-NEXT: 2 3 1.00 vucomisd %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vucomisd (%rax), %xmm1
+# CHECK-NEXT: 2 3 1.00 vucomiss %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vucomiss (%rax), %xmm1
# CHECK-NEXT: 1 1 0.50 vunpckhpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vunpckhpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vunpckhpd %ymm0, %ymm1, %ymm2
@@ -1738,7 +1738,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 168.00 168.00 - - - - - 194.58 143.08 168.25 505.08 -
+# CHECK-NEXT: 168.00 168.00 - - - - - 178.58 171.08 176.25 505.08 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1810,22 +1810,22 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vbroadcastsd (%rax), %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vbroadcastss (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vbroadcastss (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcmpeqpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcmpeqpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcmpeqps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcmpeqps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcmpeqsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcmpeqss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcomisd (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vcomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vcomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vcmpeqpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vcmpeqps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vcmpeqsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vcmpeqss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vcmpeqss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - vcomisd %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - vcomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - vcomiss %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - vcomiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - vcvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - vcvtdq2pd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - vcvtdq2pd %xmm0, %ymm2
@@ -1940,30 +1940,30 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vmaskmovps (%rax), %ymm0, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaskmovps %xmm0, %xmm1, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vmaskmovps %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vmaxpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vmaxps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vmaxss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vminpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vminps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 1.00 - - - vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vminss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vmovapd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vmovapd %xmm0, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vmovapd (%rax), %xmm2
@@ -2403,10 +2403,10 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vtestps (%rax), %xmm1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vtestps %ymm0, %ymm1
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vtestps (%rax), %ymm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vucomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vucomisd (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vucomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - vucomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - vucomisd %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - vucomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - vucomiss %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - vucomiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vunpckhpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vunpckhpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vunpckhpd %ymm0, %ymm1, %ymm2
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 3047e26d13644..9ab0ec579993b 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
@@ -202,12 +202,12 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 8 0.50 * andnps (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andps %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * andps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 cmpeqps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * cmpeqps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 cmpeqss %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * cmpeqss (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 comiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * comiss (%rax), %xmm1
+# CHECK-NEXT: 1 1 0.50 cmpeqps %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqps (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 cmpeqss %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqss (%rax), %xmm2
+# CHECK-NEXT: 2 3 1.00 comiss %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * comiss (%rax), %xmm1
# CHECK-NEXT: 1 5 1.00 cvtpi2ps %mm0, %xmm2
# CHECK-NEXT: 1 12 1.00 * cvtpi2ps (%rax), %xmm2
# CHECK-NEXT: 1 4 1.00 cvtps2pi %xmm0, %mm2
@@ -232,14 +232,14 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 22 1.00 * divss (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * * U ldmxcsr (%rax)
# CHECK-NEXT: 1 100 0.25 * * U maskmovq %mm0, %mm1
-# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * maxps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 maxss %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * maxss (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 minps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * minps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 minss %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * minss (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxps %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxps (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxss %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxss (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minps %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minps (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minss %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minss (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 movaps %xmm0, %xmm2
# CHECK-NEXT: 1 1 0.50 * movaps %xmm0, (%rax)
# CHECK-NEXT: 1 8 0.50 * movaps (%rax), %xmm2
@@ -310,8 +310,8 @@ xorps (%rax), %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 1.00 ucomiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * ucomiss (%rax), %xmm1
+# 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
# CHECK-NEXT: 1 8 0.50 * unpckhps (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 unpcklps %xmm0, %xmm2
@@ -335,7 +335,7 @@ 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 - - - - - 41.00 21.50 22.00 108.50 -
+# CHECK-NEXT: 32.50 32.50 - - - - - 33.00 29.50 26.00 108.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -347,12 +347,12 @@ xorps (%rax), %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
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - andps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - cmpeqps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - cmpeqps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - cmpeqss %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - cmpeqss (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - comiss %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - comiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - cmpeqps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - cmpeqps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - cmpeqss %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - cmpeqss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - comiss %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - comiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - - - 1.00 - cvtpi2ps %mm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - cvtpi2ps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - cvtps2pi %xmm0, %mm2
@@ -377,14 +377,14 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - divss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - ldmxcsr (%rax)
# CHECK-NEXT: - - - - - - - - - - - - maskmovq %mm0, %mm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - maxps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - maxps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - maxss %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - maxss (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - minps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - minps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - minss %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - minss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - maxps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - maxps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - maxss %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - maxss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - minps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - minps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - minss %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - minss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - movaps %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movaps %xmm0, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movaps (%rax), %xmm2
@@ -455,8 +455,8 @@ xorps (%rax), %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: - - - - - - - 1.00 - - - - ucomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - ucomiss (%rax), %xmm1
+# 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
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - unpckhps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - unpcklps %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 55e7229364158..09fd7cb7ed724 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
@@ -416,12 +416,12 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andpd %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * andpd (%rax), %xmm2
# CHECK-NEXT: 1 8 0.50 * * U clflush (%rax)
-# CHECK-NEXT: 1 3 1.00 cmpeqpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * cmpeqpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 cmpeqsd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * cmpeqsd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 comisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * comisd (%rax), %xmm1
+# CHECK-NEXT: 1 1 0.50 cmpeqpd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqpd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 cmpeqsd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqsd (%rax), %xmm2
+# CHECK-NEXT: 2 3 1.00 comisd %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * comisd (%rax), %xmm1
# CHECK-NEXT: 1 5 1.00 cvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 1 12 1.00 * cvtdq2pd (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 cvtdq2ps %xmm0, %xmm2
@@ -466,15 +466,15 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 22 1.00 * divsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 * * U lfence
# CHECK-NEXT: 1 100 0.25 * * U maskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: 1 3 1.00 maxpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * maxpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * maxsd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxpd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxpd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxsd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 * * U mfence
-# CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * minpd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * minsd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minpd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minpd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minsd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 movapd %xmm0, %xmm2
# CHECK-NEXT: 1 1 0.50 * movapd %xmm0, (%rax)
# CHECK-NEXT: 1 8 0.50 * movapd (%rax), %xmm2
@@ -666,8 +666,8 @@ xorpd (%rax), %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 1.00 ucomisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * ucomisd (%rax), %xmm1
+# 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
# CHECK-NEXT: 1 8 0.50 * unpckhpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 unpcklpd %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 - - - - - 72.92 40.42 71.75 153.92 -
+# CHECK-NEXT: 66.50 66.50 - - - - - 64.92 48.42 75.75 153.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -704,12 +704,12 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - andpd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - andpd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - clflush (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - cmpeqpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - cmpeqpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - cmpeqsd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - cmpeqsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - comisd %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - comisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - cmpeqpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - cmpeqpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - cmpeqsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - cmpeqsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 1.00 - - comisd %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 1.00 - - comisd (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - cvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - cvtdq2pd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - cvtdq2ps %xmm0, %xmm2
@@ -754,15 +754,15 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - divsd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - lfence
# CHECK-NEXT: - - - - - - - - - - - - maskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - maxpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - maxpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - maxsd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - maxsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - maxpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - maxpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - maxsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - maxsd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - mfence
-# CHECK-NEXT: - - - - - - - 1.00 - - - - minpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - minpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - minsd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - minsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - minpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - minpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - minsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - minsd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - movapd %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movapd %xmm0, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movapd (%rax), %xmm2
@@ -954,8 +954,8 @@ xorpd (%rax), %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: - - - - - - - 1.00 - - - - ucomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - ucomisd (%rax), %xmm1
+# 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
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - unpckhpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - unpcklpd %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 4b11dc74c8dd2..14cd7ed5eae65 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1098,22 +1098,22 @@ vzeroupper
# CHECK-NEXT: 1 8 0.50 * vbroadcastsd (%rax), %ymm2
# CHECK-NEXT: 1 8 0.50 * vbroadcastss (%rax), %xmm2
# CHECK-NEXT: 1 8 0.50 * vbroadcastss (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vcmpeqpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vcmpeqpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vcmpeqpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 1.00 * vcmpeqpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vcmpeqps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vcmpeqps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vcmpeqps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 1.00 * vcmpeqps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vcmpeqsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vcmpeqsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vcmpeqss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vcmpeqss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcomisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vcomisd (%rax), %xmm1
-# CHECK-NEXT: 1 3 1.00 vcomiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vcomiss (%rax), %xmm1
+# CHECK-NEXT: 1 1 0.50 vcmpeqpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vcmpeqss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vcmpeqss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 3 1.00 vcomisd %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vcomisd (%rax), %xmm1
+# CHECK-NEXT: 2 3 1.00 vcomiss %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vcomiss (%rax), %xmm1
# CHECK-NEXT: 1 3 1.00 vcvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 1 12 1.00 * vcvtdq2pd (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 vcvtdq2pd %xmm0, %ymm2
@@ -1228,30 +1228,30 @@ vzeroupper
# CHECK-NEXT: 2 8 0.50 * vmaskmovps (%rax), %ymm0, %ymm2
# CHECK-NEXT: 1 4 0.50 * * vmaskmovps %xmm0, %xmm1, (%rax)
# CHECK-NEXT: 2 5 1.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: 1 1 1.00 vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 1.00 * vmaxpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 1.00 * vmaxps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vmaxss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 1.00 * vminpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 1.00 * vminps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 1.00 * vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 8 0.50 * vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 8 0.50 * vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 8 0.50 * vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 8 0.50 * vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vminss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.25 vmovapd %xmm0, %xmm2
# CHECK-NEXT: 1 1 0.33 * vmovapd %xmm0, (%rax)
# CHECK-NEXT: 1 8 0.33 * vmovapd (%rax), %xmm2
@@ -1691,10 +1691,10 @@ vzeroupper
# CHECK-NEXT: 1 8 0.33 * vtestps (%rax), %xmm1
# CHECK-NEXT: 1 1 0.25 vtestps %ymm0, %ymm1
# CHECK-NEXT: 1 8 0.33 * vtestps (%rax), %ymm1
-# CHECK-NEXT: 1 3 1.00 vucomisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vucomisd (%rax), %xmm1
-# CHECK-NEXT: 1 3 1.00 vucomiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vucomiss (%rax), %xmm1
+# CHECK-NEXT: 2 3 1.00 vucomisd %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vucomisd (%rax), %xmm1
+# CHECK-NEXT: 2 3 1.00 vucomiss %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * vucomiss (%rax), %xmm1
# CHECK-NEXT: 1 1 0.50 vunpckhpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vunpckhpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vunpckhpd %ymm0, %ymm1, %ymm2
@@ -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 - 191.92 143.42 170.25 455.42 -
+# 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: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -1811,22 +1811,22 @@ vzeroupper
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vbroadcastsd (%rax), %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vbroadcastss (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vbroadcastss (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcmpeqpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcmpeqpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcmpeqpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcmpeqpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcmpeqps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcmpeqps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcmpeqps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcmpeqps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcmpeqsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcmpeqsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcmpeqss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcmpeqss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcomisd (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vcomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vcomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vcmpeqpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vcmpeqps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vcmpeqsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vcmpeqss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vcmpeqss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - vcomisd %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - vcomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - vcomiss %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - vcomiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtdq2pd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvtdq2pd %xmm0, %ymm2
@@ -1941,30 +1941,30 @@ vzeroupper
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaskmovps (%rax), %ymm0, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaskmovps %xmm0, %xmm1, (%rax)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 1.00 - - - vmaskmovps %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vmaxpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vmaxps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vmaxss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vminpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vminps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vminss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vmovapd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vmovapd %xmm0, (%rax)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vmovapd (%rax), %xmm2
@@ -2404,10 +2404,10 @@ vzeroupper
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vtestps (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vtestps %ymm0, %ymm1
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vtestps (%rax), %ymm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vucomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vucomisd (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - vucomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vucomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - vucomisd %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - vucomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - vucomiss %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - vucomiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vunpckhpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - vunpckhpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vunpckhpd %ymm0, %ymm1, %ymm2
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 7d9dcfbf249a6..5228dc7e1084a 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
@@ -202,12 +202,12 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 8 0.33 * andnps (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andps %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.33 * andps (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 cmpeqps %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * cmpeqps (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 cmpeqss %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * cmpeqss (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 comiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * comiss (%rax), %xmm1
+# CHECK-NEXT: 1 1 0.50 cmpeqps %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqps (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 cmpeqss %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqss (%rax), %xmm2
+# CHECK-NEXT: 2 3 1.00 comiss %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * comiss (%rax), %xmm1
# CHECK-NEXT: 1 5 1.00 cvtpi2ps %mm0, %xmm2
# CHECK-NEXT: 1 12 1.00 * cvtpi2ps (%rax), %xmm2
# CHECK-NEXT: 1 4 1.00 cvtps2pi %xmm0, %mm2
@@ -232,14 +232,14 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 22 1.00 * divss (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * * U ldmxcsr (%rax)
# CHECK-NEXT: 1 100 0.25 * * U maskmovq %mm0, %mm1
-# CHECK-NEXT: 1 1 1.00 maxps %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * maxps (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 maxss %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * maxss (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 minps %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * minps (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 minss %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * minss (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxps %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxps (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxss %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxss (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minps %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minps (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minss %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minss (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 movaps %xmm0, %xmm2
# CHECK-NEXT: 1 1 0.33 * movaps %xmm0, (%rax)
# CHECK-NEXT: 1 8 0.33 * movaps (%rax), %xmm2
@@ -310,8 +310,8 @@ xorps (%rax), %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 1.00 ucomiss %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * ucomiss (%rax), %xmm1
+# 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
# CHECK-NEXT: 1 8 0.50 * unpckhps (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 unpcklps %xmm0, %xmm2
@@ -336,7 +336,7 @@ 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 - - - - - 41.00 21.50 22.00 108.50 -
+# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 33.00 29.50 26.00 108.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -348,12 +348,12 @@ xorps (%rax), %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
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqps %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqss %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqss (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - comiss %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - comiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - cmpeqps %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - cmpeqps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - cmpeqss %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - cmpeqss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - comiss %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - comiss (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtpi2ps %mm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtpi2ps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtps2pi %xmm0, %mm2
@@ -378,14 +378,14 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - ldmxcsr (%rax)
# CHECK-NEXT: - - - - - - - - - - - - - maskmovq %mm0, %mm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - maxps %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - maxss %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxss (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - minps %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - minss %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - maxps %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - maxps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - maxss %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - maxss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - minps %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - minps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - minss %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - minss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movaps %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movaps %xmm0, (%rax)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movaps (%rax), %xmm2
@@ -456,8 +456,8 @@ xorps (%rax), %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: - - - - - - - - 1.00 - - - - ucomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - ucomiss (%rax), %xmm1
+# 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
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpckhps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpcklps %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 5bc3cdcc4a2ff..defe7e6c155c5 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
@@ -416,12 +416,12 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 andpd %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.33 * andpd (%rax), %xmm2
# CHECK-NEXT: 1 8 0.33 * * U clflush (%rax)
-# CHECK-NEXT: 1 1 1.00 cmpeqpd %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * cmpeqpd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 cmpeqsd %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * cmpeqsd (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 comisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * comisd (%rax), %xmm1
+# CHECK-NEXT: 1 1 0.50 cmpeqpd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqpd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 cmpeqsd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * cmpeqsd (%rax), %xmm2
+# CHECK-NEXT: 2 3 1.00 comisd %xmm0, %xmm1
+# CHECK-NEXT: 2 10 1.00 * comisd (%rax), %xmm1
# CHECK-NEXT: 1 3 1.00 cvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 1 12 1.00 * cvtdq2pd (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 cvtdq2ps %xmm0, %xmm2
@@ -466,15 +466,15 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 22 1.00 * divsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 * * U lfence
# CHECK-NEXT: 1 100 0.25 * * U maskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: 1 1 1.00 maxpd %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * maxpd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 maxsd %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * maxsd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxpd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxpd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 maxsd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * maxsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 * * U mfence
-# CHECK-NEXT: 1 1 1.00 minpd %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * minpd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 minsd %xmm0, %xmm2
-# CHECK-NEXT: 1 8 1.00 * minsd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minpd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minpd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 minsd %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * minsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 movapd %xmm0, %xmm2
# CHECK-NEXT: 1 1 0.33 * movapd %xmm0, (%rax)
# CHECK-NEXT: 1 8 0.33 * movapd (%rax), %xmm2
@@ -666,8 +666,8 @@ xorpd (%rax), %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 1.00 ucomisd %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * ucomisd (%rax), %xmm1
+# 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
# CHECK-NEXT: 1 8 0.50 * unpckhpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 unpcklpd %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 - - - - - 71.92 41.92 73.25 152.92 -
+# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 63.92 49.92 77.25 152.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -705,12 +705,12 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andpd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andpd (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - clflush (%rax)
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqpd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqsd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - comisd %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - comisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - cmpeqpd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - cmpeqpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - cmpeqsd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - cmpeqsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - - comisd %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 1.00 - - comisd (%rax), %xmm1
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtdq2pd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtdq2pd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtdq2ps %xmm0, %xmm2
@@ -755,15 +755,15 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divsd (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - lfence
# CHECK-NEXT: - - - - - - - - - - - - - maskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - maxpd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - maxsd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - maxpd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - maxpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - maxsd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - maxsd (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - mfence
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - minpd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - minsd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - minpd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - minpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - minsd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - minsd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movapd %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movapd %xmm0, (%rax)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movapd (%rax), %xmm2
@@ -955,8 +955,8 @@ xorpd (%rax), %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: - - - - - - - - 1.00 - - - - ucomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - ucomisd (%rax), %xmm1
+# 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
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpckhpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpcklpd %xmm0, %xmm2
More information about the llvm-commits
mailing list