[llvm] [X86] Add correct model values for masked stores on Zen 1 and 2 (PR #217254)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 19 02:40:00 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: Rohan Shenoy (222rohan)
<details>
<summary>Changes</summary>
Follow up to #<!-- -->214187 as requested.
---
Patch is 22.62 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/217254.diff
6 Files Affected:
- (modified) llvm/lib/Target/X86/X86ScheduleZnver1.td (+8-10)
- (modified) llvm/lib/Target/X86/X86ScheduleZnver2.td (+8-10)
- (modified) llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s (+9-9)
- (modified) llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s (+9-9)
- (modified) llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s (+9-9)
- (modified) llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s (+9-9)
``````````diff
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index e01b3d50c71be..b7f14ccbacf93 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -267,10 +267,10 @@ defm : X86WriteRes<WriteFStoreY, [ZnAGU], 1, [1], 1>;
defm : X86WriteRes<WriteFStoreNT, [ZnAGU,ZnFPU2], 8, [1,1], 1>;
defm : X86WriteRes<WriteFStoreNTX, [ZnAGU], 1, [1], 1>;
defm : X86WriteRes<WriteFStoreNTY, [ZnAGU], 1, [1], 1>;
-defm : X86WriteRes<WriteFMaskedStore32, [ZnAGU,ZnFPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteFMaskedStore32Y, [ZnAGU,ZnFPU01], 5, [1,2], 2>;
-defm : X86WriteRes<WriteFMaskedStore64, [ZnAGU,ZnFPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteFMaskedStore64Y, [ZnAGU,ZnFPU01], 5, [1,2], 2>;
+defm : X86WriteRes<WriteFMaskedStore32, [ZnAGU,ZnFPU01], 4, [1,12], 19>;
+defm : X86WriteRes<WriteFMaskedStore32Y, [ZnAGU,ZnFPU01], 5, [1,24], 42>;
+defm : X86WriteRes<WriteFMaskedStore64, [ZnAGU,ZnFPU01], 4, [1,8], 10>;
+defm : X86WriteRes<WriteFMaskedStore64Y, [ZnAGU,ZnFPU01], 5, [1,12], 18>;
defm : X86WriteRes<WriteFMove, [ZnFPU], 1, [1], 1>;
defm : X86WriteRes<WriteFMoveX, [ZnFPU], 1, [1], 1>;
@@ -386,10 +386,10 @@ defm : X86WriteRes<WriteVecStoreX, [ZnAGU], 1, [1], 1>;
defm : X86WriteRes<WriteVecStoreY, [ZnAGU], 1, [1], 1>;
defm : X86WriteRes<WriteVecStoreNT, [ZnAGU], 1, [1], 1>;
defm : X86WriteRes<WriteVecStoreNTY, [ZnAGU], 1, [1], 1>;
-defm : X86WriteRes<WriteVecMaskedStore32, [ZnAGU,ZnFPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteVecMaskedStore32Y, [ZnAGU,ZnFPU01], 5, [1,2], 2>;
-defm : X86WriteRes<WriteVecMaskedStore64, [ZnAGU,ZnFPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteVecMaskedStore64Y, [ZnAGU,ZnFPU01], 5, [1,2], 2>;
+defm : X86WriteRes<WriteVecMaskedStore32, [ZnAGU,ZnFPU01], 4, [1,12], 19>;
+defm : X86WriteRes<WriteVecMaskedStore32Y, [ZnAGU,ZnFPU01], 5, [1,24], 42>;
+defm : X86WriteRes<WriteVecMaskedStore64, [ZnAGU,ZnFPU01], 4, [1,8], 10>;
+defm : X86WriteRes<WriteVecMaskedStore64Y, [ZnAGU,ZnFPU01], 5, [1,12], 18>;
defm : X86WriteRes<WriteVecMove, [ZnFPU], 1, [1], 1>;
defm : X86WriteRes<WriteVecMoveX, [ZnFPU], 1, [1], 1>;
defm : X86WriteRes<WriteVecMoveY, [ZnFPU], 2, [1], 2>;
@@ -920,8 +920,6 @@ def : InstRW<[WriteMicrocoded], (instregex "(V?)MASKMOVDQU(64)?")>;
// ymm
def : InstRW<[WriteMicrocoded],
(instregex "VPMASKMOVD(Y?)rm")>;
-// m, v,v.
-def : InstRW<[WriteMicrocoded], (instregex "VPMASKMOV(D|Q)(Y?)mr")>;
// VPBROADCAST B/W.
// x, m8/16.
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 641b1b84ce97a..a981a5eb3f1c1 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -266,10 +266,10 @@ defm : X86WriteRes<WriteFStoreY, [Zn2AGU], 1, [1], 1>;
defm : X86WriteRes<WriteFStoreNT, [Zn2AGU,Zn2FPU2], 8, [1,1], 1>;
defm : X86WriteRes<WriteFStoreNTX, [Zn2AGU], 1, [1], 1>;
defm : X86WriteRes<WriteFStoreNTY, [Zn2AGU], 1, [1], 1>;
-defm : X86WriteRes<WriteFMaskedStore32, [Zn2AGU,Zn2FPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteFMaskedStore32Y, [Zn2AGU,Zn2FPU01], 5, [1,2], 2>;
-defm : X86WriteRes<WriteFMaskedStore64, [Zn2AGU,Zn2FPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteFMaskedStore64Y, [Zn2AGU,Zn2FPU01], 5, [1,2], 2>;
+defm : X86WriteRes<WriteFMaskedStore32, [Zn2AGU,Zn2FPU01], 4, [1,12], 19>;
+defm : X86WriteRes<WriteFMaskedStore32Y, [Zn2AGU,Zn2FPU01], 5, [1,24], 44>;
+defm : X86WriteRes<WriteFMaskedStore64, [Zn2AGU,Zn2FPU01], 4, [1,8], 10>;
+defm : X86WriteRes<WriteFMaskedStore64Y, [Zn2AGU,Zn2FPU01], 5, [1,12], 19>;
defm : X86WriteRes<WriteFMove, [Zn2FPU], 1, [1], 1>;
defm : X86WriteRes<WriteFMoveX, [Zn2FPU], 1, [1], 1>;
@@ -385,10 +385,10 @@ defm : X86WriteRes<WriteVecStoreX, [Zn2AGU], 1, [1], 1>;
defm : X86WriteRes<WriteVecStoreY, [Zn2AGU], 1, [1], 1>;
defm : X86WriteRes<WriteVecStoreNT, [Zn2AGU], 1, [1], 1>;
defm : X86WriteRes<WriteVecStoreNTY, [Zn2AGU], 1, [1], 1>;
-defm : X86WriteRes<WriteVecMaskedStore32, [Zn2AGU,Zn2FPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteVecMaskedStore32Y, [Zn2AGU,Zn2FPU01], 5, [1,2], 2>;
-defm : X86WriteRes<WriteVecMaskedStore64, [Zn2AGU,Zn2FPU01], 4, [1,1], 1>;
-defm : X86WriteRes<WriteVecMaskedStore64Y, [Zn2AGU,Zn2FPU01], 5, [1,2], 2>;
+defm : X86WriteRes<WriteVecMaskedStore32, [Zn2AGU,Zn2FPU01], 4, [1,12], 19>;
+defm : X86WriteRes<WriteVecMaskedStore32Y, [Zn2AGU,Zn2FPU01], 5, [1,24], 44>;
+defm : X86WriteRes<WriteVecMaskedStore64, [Zn2AGU,Zn2FPU01], 4, [1,8], 10>;
+defm : X86WriteRes<WriteVecMaskedStore64Y, [Zn2AGU,Zn2FPU01], 5, [1,12], 19>;
defm : X86WriteRes<WriteVecMove, [Zn2FPU], 1, [1], 1>;
defm : X86WriteRes<WriteVecMoveX, [Zn2FPU], 1, [1], 1>;
defm : X86WriteRes<WriteVecMoveY, [Zn2FPU], 2, [1], 2>;
@@ -930,8 +930,6 @@ def : InstRW<[WriteMicrocoded], (instregex "(V?)MASKMOVDQU(64)?")>;
// ymm
def : InstRW<[WriteMicrocoded],
(instregex "VPMASKMOVD(Y?)rm")>;
-// m, v,v.
-def : InstRW<[WriteMicrocoded], (instregex "VPMASKMOV(D|Q)(Y?)mr")>;
// VPBROADCAST B/W.
// x, m8/16.
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 00e69d8960565..088418a804ea7 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1222,12 +1222,12 @@ vzeroupper
# CHECK-NEXT: 1 100 0.25 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 1 8 0.50 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 8 1.00 * vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 1 4 0.50 * * vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 2 5 1.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 10 4 4.00 * * vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 18 5 6.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 1 8 0.50 * vmaskmovps (%rax), %xmm0, %xmm2
# 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: 19 4 6.00 * * vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 42 5 12.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
# 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
@@ -1738,7 +1738,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 175.50 175.50 - - - - - 150.25 230.25 226.75 315.75 -
+# CHECK-NEXT: 175.50 175.50 - - - - - 175.25 255.25 226.75 315.75 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1934,12 +1934,12 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - - - - vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - 4.00 4.00 - - - vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - 6.00 6.00 - - - vmaskmovpd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - vmaskmovps (%rax), %xmm0, %xmm2
# 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: 0.50 0.50 - - - - - 6.00 6.00 - - - vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - 12.00 12.00 - - - vmaskmovps %ymm0, %ymm1, (%rax)
# 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
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
index a3ebe63e71898..085e0f7f8dacb 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
@@ -594,12 +594,12 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 11 2.00 * vpmaddwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 100 0.25 * vpmaskmovd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 1 100 0.25 * vpmaskmovd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 19 4 6.00 * * vpmaskmovd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 42 5 12.00 * * vpmaskmovd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 2 8 1.00 * vpmaskmovq (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.50 * vpmaskmovq (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 10 4 4.00 * * vpmaskmovq %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 18 5 6.00 * * vpmaskmovq %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 2 1 0.67 vpmaxsb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.67 * vpmaxsb (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 1 0.67 vpmaxsd %ymm0, %ymm1, %ymm2
@@ -778,7 +778,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 67.00 67.00 - - - - - 126.17 242.17 161.00 66.67 -
+# CHECK-NEXT: 69.00 69.00 - - - - - 154.17 270.17 161.00 66.67 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -916,12 +916,12 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmaddwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd (%rax), %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - 6.00 6.00 - - - vpmaskmovd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - 12.00 12.00 - - - vpmaskmovd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vpmaskmovq (%rax), %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.50 1.50 - - - vpmaskmovq (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovq %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: - - - - - - - - - - - - vpmaskmovq %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - 4.00 4.00 - - - vpmaskmovq %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - 6.00 6.00 - - - vpmaskmovq %ymm0, %ymm1, (%rax)
# CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxsb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpmaxsb (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxsd %ymm0, %ymm1, %ymm2
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 96ae057596967..e6feb0badba0d 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1222,12 +1222,12 @@ vzeroupper
# CHECK-NEXT: 1 100 0.25 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 1 8 0.50 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 8 0.50 * vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 1 4 0.50 * * vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 2 5 1.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 10 4 4.00 * * vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 19 5 6.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 1 8 0.50 * vmaskmovps (%rax), %xmm0, %xmm2
# 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: 19 4 6.00 * * vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 44 5 12.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
# 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
@@ -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.33 117.33 117.33 0.25 0.25 0.25 0.25 - 126.58 192.58 198.75 305.08 -
+# CHECK-NEXT: 117.33 117.33 117.33 0.25 0.25 0.25 0.25 - 151.58 217.58 198.75 305.08 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -1935,12 +1935,12 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - - - - - vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 1.00 - - - vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 4.00 4.00 - - - vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 6.00 6.00 - - - vmaskmovpd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - vmaskmovps (%rax), %xmm0, %xmm2
# 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: 0.33 0.33 0.33 - - - - - 6.00 6.00 - - - vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 12.00 12.00 - - - vmaskmovps %ymm0, %ymm1, (%rax)
# 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
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
index 7be45be2c3578..a6511e369f14e 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
@@ -594,12 +594,12 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 11 1.00 * vpmaddwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 100 0.25 * vpmaskmovd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 1 100 0.25 * vpmaskmovd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 19 4 6.00 * * vpmaskmovd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 44 5 12.00 * * vpmaskmovd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 2 8 1.00 * vpmaskmovq (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 8 1.00 * vpmaskmovq (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 10 4 4.00 * * vpmaskmovq %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 19 5 6.00 * * vpmaskmovq %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 1 1 0.33 vpmaxsb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.33 * vpmaxsb (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.33 vpmaxsd %ymm0, %ymm1, %ymm2
@@ -779,7 +779,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/217254
More information about the llvm-commits
mailing list