[llvm] 14cc467 - [X86] Adjust vector fp test costs to match int test costs
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon May 30 01:50:21 PDT 2022
Author: Simon Pilgrim
Date: 2022-05-30T09:50:15+01:00
New Revision: 14cc4674bf5ac848e4d2564c73aa68c28bbd5144
URL: https://github.com/llvm/llvm-project/commit/14cc4674bf5ac848e4d2564c73aa68c28bbd5144
DIFF: https://github.com/llvm/llvm-project/commit/14cc4674bf5ac848e4d2564c73aa68c28bbd5144.diff
LOG: [X86] Adjust vector fp test costs to match int test costs
znver1/2 models were missing the vtestps/pd overrides to match the vptest integer equivalents.
Noticed while investigating Issue #54889
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/Znver2/resources-avx1.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 041d224d40ca..bfa5a1447f6a 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -334,8 +334,8 @@ defm : X86WriteResPairUnsupported<WriteFRndZ>;
defm : ZnWriteResFpuPair<WriteFLogic, [ZnFPU], 1>;
defm : ZnWriteResFpuPair<WriteFLogicY, [ZnFPU], 1>;
defm : X86WriteResPairUnsupported<WriteFLogicZ>;
-defm : ZnWriteResFpuPair<WriteFTest, [ZnFPU], 1>;
-defm : ZnWriteResFpuPair<WriteFTestY, [ZnFPU], 1>;
+defm : ZnWriteResFpuPair<WriteFTest, [ZnFPU12], 1, [2], 1, 7, 1>;
+defm : ZnWriteResFpuPair<WriteFTestY, [ZnFPU12], 1, [2], 1, 7, 1>;
defm : X86WriteResPairUnsupported<WriteFTestZ>;
defm : ZnWriteResFpuPair<WriteFShuffle, [ZnFPU12], 1>;
defm : ZnWriteResFpuPair<WriteFShuffleY, [ZnFPU12], 1>;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 7805a5d78e75..7a98b943191d 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -331,8 +331,8 @@ defm : X86WriteResPairUnsupported<WriteFRndZ>;
defm : Zn2WriteResFpuPair<WriteFLogic, [Zn2FPU], 1>;
defm : Zn2WriteResFpuPair<WriteFLogicY, [Zn2FPU], 1>;
defm : X86WriteResPairUnsupported<WriteFLogicZ>;
-defm : Zn2WriteResFpuPair<WriteFTest, [Zn2FPU], 1>;
-defm : Zn2WriteResFpuPair<WriteFTestY, [Zn2FPU], 1>;
+defm : Zn2WriteResFpuPair<WriteFTest, [Zn2FPU12], 1, [2], 1, 7, 1>;
+defm : Zn2WriteResFpuPair<WriteFTestY, [Zn2FPU12], 1, [2], 1, 7, 1>;
defm : X86WriteResPairUnsupported<WriteFTestZ>;
defm : Zn2WriteResFpuPair<WriteFShuffle, [Zn2FPU12], 1>;
defm : Zn2WriteResFpuPair<WriteFShuffleY, [Zn2FPU12], 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 7b67829550cc..905fbe09fae1 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1683,14 +1683,14 @@ vzeroupper
# 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
-# CHECK-NEXT: 1 8 0.50 * vtestpd (%rax), %ymm1
-# CHECK-NEXT: 1 1 0.25 vtestps %xmm0, %xmm1
-# 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 1 1.00 vtestpd %xmm0, %xmm1
+# CHECK-NEXT: 2 8 1.00 * vtestpd (%rax), %xmm1
+# CHECK-NEXT: 1 1 1.00 vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 2 8 1.00 * vtestpd (%rax), %ymm1
+# CHECK-NEXT: 1 1 1.00 vtestps %xmm0, %xmm1
+# CHECK-NEXT: 2 8 1.00 * vtestps (%rax), %xmm1
+# CHECK-NEXT: 1 1 1.00 vtestps %ymm0, %ymm1
+# CHECK-NEXT: 2 8 1.00 * vtestps (%rax), %ymm1
# 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
@@ -1738,7 +1738,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 175.00 175.00 - - - - - 144.58 169.08 204.25 525.08 -
+# CHECK-NEXT: 175.00 175.00 - - - - - 142.58 175.08 210.25 523.08 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2395,14 +2395,14 @@ vzeroupper
# 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
-# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vtestpd (%rax), %ymm1
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vtestps %xmm0, %xmm1
-# 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 1.00 - - vtestpd %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vtestpd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vtestpd (%rax), %ymm1
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vtestps %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vtestps (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vtestps %ymm0, %ymm1
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vtestps (%rax), %ymm1
# 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
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 0ccc0219941a..755a754a2f0a 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1683,14 +1683,14 @@ vzeroupper
# 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
-# CHECK-NEXT: 1 8 0.33 * vtestpd (%rax), %ymm1
-# CHECK-NEXT: 1 1 0.25 vtestps %xmm0, %xmm1
-# 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 1 1.00 vtestpd %xmm0, %xmm1
+# CHECK-NEXT: 2 8 1.00 * vtestpd (%rax), %xmm1
+# CHECK-NEXT: 1 1 1.00 vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 2 8 1.00 * vtestpd (%rax), %ymm1
+# CHECK-NEXT: 1 1 1.00 vtestps %xmm0, %xmm1
+# CHECK-NEXT: 2 8 1.00 * vtestps (%rax), %xmm1
+# CHECK-NEXT: 1 1 1.00 vtestps %ymm0, %ymm1
+# CHECK-NEXT: 2 8 1.00 * vtestps (%rax), %ymm1
# 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
@@ -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 - 135.92 163.42 200.25 469.42 -
+# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 133.92 169.42 206.25 467.42 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -2396,14 +2396,14 @@ vzeroupper
# 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
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vtestpd (%rax), %ymm1
-# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vtestps %xmm0, %xmm1
-# 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 1.00 - - vtestpd %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 1.00 - - vtestpd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 1.00 - - vtestpd (%rax), %ymm1
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - vtestps %xmm0, %xmm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 1.00 - - vtestps (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - vtestps %ymm0, %ymm1
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 1.00 - - vtestps (%rax), %ymm1
# 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
More information about the llvm-commits
mailing list