aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2022-05-30 09:50:08 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2022-05-30 09:50:15 +0100
commit14cc4674bf5ac848e4d2564c73aa68c28bbd5144 (patch)
tree2f4269ee85b441598a2ab5fa35c74ee2cae2251c
parent402b8373021a69090aae505c7f39d9e750127ff2 (diff)
downloadllvm-14cc4674bf5ac848e4d2564c73aa68c28bbd5144.zip
llvm-14cc4674bf5ac848e4d2564c73aa68c28bbd5144.tar.gz
llvm-14cc4674bf5ac848e4d2564c73aa68c28bbd5144.tar.bz2
[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
-rw-r--r--llvm/lib/Target/X86/X86ScheduleZnver1.td4
-rw-r--r--llvm/lib/Target/X86/X86ScheduleZnver2.td4
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s34
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s34
4 files changed, 38 insertions, 38 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 041d224..bfa5a14 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 7805a5d..7a98b94 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 7b67829..905fbe0 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 0ccc021..755a754 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