From 14cc4674bf5ac848e4d2564c73aa68c28bbd5144 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Mon, 30 May 2022 09:50:08 +0100 Subject: [PATCH] [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 --- llvm/lib/Target/X86/X86ScheduleZnver1.td | 4 +-- llvm/lib/Target/X86/X86ScheduleZnver2.td | 4 +-- .../tools/llvm-mca/X86/Znver1/resources-avx1.s | 34 +++++++++++----------- .../tools/llvm-mca/X86/Znver2/resources-avx1.s | 34 +++++++++++----------- 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; defm : ZnWriteResFpuPair; defm : ZnWriteResFpuPair; defm : X86WriteResPairUnsupported; -defm : ZnWriteResFpuPair; -defm : ZnWriteResFpuPair; +defm : ZnWriteResFpuPair; +defm : ZnWriteResFpuPair; defm : X86WriteResPairUnsupported; defm : ZnWriteResFpuPair; defm : ZnWriteResFpuPair; 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; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; 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 -- 2.7.4