From a0a0eb192eff7750f386a066660d5bdefffe2bcb Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Mon, 27 Dec 2021 13:21:20 +0000 Subject: [PATCH] [X86] Use WriteVecMove scheduler classes for VPMOVM2* instructions These match the port behaviour of reg-reg predicated xmm/ymm/zmm moves Fixes #34958 --- llvm/lib/Target/X86/X86InstrAVX512.td | 7 +++---- .../tools/llvm-mca/X86/Generic/resources-avx512bw.s | 10 +++++----- .../tools/llvm-mca/X86/Generic/resources-avx512bwvl.s | 10 +++++----- .../tools/llvm-mca/X86/Generic/resources-avx512dq.s | 10 +++++----- .../tools/llvm-mca/X86/Generic/resources-avx512dqvl.s | 10 +++++----- .../llvm-mca/X86/IceLakeServer/resources-avx512bw.s | 10 +++++----- .../llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s | 18 +++++++++--------- .../llvm-mca/X86/IceLakeServer/resources-avx512dq.s | 10 +++++----- .../llvm-mca/X86/IceLakeServer/resources-avx512dqvl.s | 18 +++++++++--------- .../llvm-mca/X86/SkylakeServer/resources-avx512bw.s | 10 +++++----- .../llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s | 18 +++++++++--------- .../llvm-mca/X86/SkylakeServer/resources-avx512dq.s | 10 +++++----- .../llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s | 18 +++++++++--------- 13 files changed, 79 insertions(+), 80 deletions(-) diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index ecd4777..bc67d1f 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -10537,13 +10537,12 @@ def rr : AVX512XS8I opc, AVX512VLVectorVTInfo VTInfo, string OpcodeStr, Predicate prd> { -// TODO - Replace WriteMove with WriteVecTrunc? let Predicates = [prd] in - defm Z : cvt_by_vec_width, EVEX_V512; + defm Z : cvt_by_vec_width, EVEX_V512; let Predicates = [prd, HasVLX] in { - defm Z256 : cvt_by_vec_width, EVEX_V256; - defm Z128 : cvt_by_vec_width, EVEX_V128; + defm Z256 : cvt_by_vec_width, EVEX_V256; + defm Z128 : cvt_by_vec_width, EVEX_V128; } } diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s index da27526..7301694 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s @@ -504,8 +504,8 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %zmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 # CHECK-NEXT: 1 1 0.33 vpmovb2m %zmm0, %k0 # CHECK-NEXT: 1 1 0.33 vpmovw2m %zmm0, %k0 @@ -521,7 +521,7 @@ vpmovw2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 13.67 47.67 4.00 156.67 52.50 52.50 +# CHECK-NEXT: - - 14.00 47.00 4.00 157.00 52.50 52.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -749,7 +749,7 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %zmm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2b %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2w %k0, %zmm0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %zmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %zmm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s index ad32d07..32c2856 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s @@ -926,8 +926,8 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %xmm0 # CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %ymm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %ymm0 # CHECK-NEXT: 1 1 0.33 vpmovb2m %xmm0, %k0 # CHECK-NEXT: 1 1 0.33 vpmovw2m %xmm0, %k0 # CHECK-NEXT: 1 1 0.33 vpmovb2m %ymm0, %k0 @@ -945,7 +945,7 @@ vpmovw2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 18.33 133.33 8.00 248.33 105.00 105.00 +# CHECK-NEXT: - - 18.67 132.67 8.00 248.67 105.00 105.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1363,8 +1363,8 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %xmm0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %xmm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %ymm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %ymm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2b %k0, %ymm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2w %k0, %ymm0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %xmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %xmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %ymm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s index 9d08164..5849220 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s @@ -336,8 +336,8 @@ vpmovq2m %zmm0, %k0 # CHECK-NEXT: 1 1 1.00 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %zmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2d %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2q %k0, %zmm0 # CHECK-NEXT: 1 1 0.33 vpmovd2m %zmm0, %k0 # CHECK-NEXT: 1 1 0.33 vpmovq2m %zmm0, %k0 @@ -353,7 +353,7 @@ vpmovq2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 9.67 41.67 - 110.67 46.50 46.50 +# CHECK-NEXT: - - 10.00 41.00 - 111.00 46.50 46.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -506,7 +506,7 @@ vpmovq2m %zmm0, %k0 # CHECK-NEXT: - - - - - 1.00 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2d %k0, %zmm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2q %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2d %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2q %k0, %zmm0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovd2m %zmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovq2m %zmm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s index 7ab33c3..d7d0c3a 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s @@ -459,8 +459,8 @@ vpmovq2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %xmm0 # CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %xmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %ymm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %ymm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2d %k0, %ymm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2q %k0, %ymm0 # CHECK-NEXT: 1 1 0.33 vpmovd2m %xmm0, %k0 # CHECK-NEXT: 1 1 0.33 vpmovq2m %xmm0, %k0 # CHECK-NEXT: 1 1 0.33 vpmovd2m %ymm0, %k0 @@ -478,7 +478,7 @@ vpmovq2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 14.67 46.17 - 169.17 66.50 66.50 +# CHECK-NEXT: - - 15.00 45.50 - 169.50 66.50 66.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -688,8 +688,8 @@ vpmovq2m %ymm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2d %k0, %xmm0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2q %k0, %xmm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2d %k0, %ymm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2q %k0, %ymm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2d %k0, %ymm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2q %k0, %ymm0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovd2m %xmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovq2m %xmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovd2m %ymm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s index 9a41974..02a5152 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s @@ -504,8 +504,8 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %zmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 # CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0 @@ -525,7 +525,7 @@ vpmovw2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 37.50 11.50 52.50 52.50 6.00 182.50 0.50 2.00 - - +# CHECK-NEXT: - - 38.00 11.00 52.50 52.50 6.00 183.00 - 2.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -753,7 +753,7 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %zmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2b %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2w %k0, %zmm0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %zmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %zmm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s index 0539e352c..6e106c9 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s @@ -924,10 +924,10 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %ymm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0 # CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0 @@ -949,7 +949,7 @@ vpmovw2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 41.00 89.00 103.67 103.67 8.00 293.00 1.00 2.67 - - +# CHECK-NEXT: - - 41.33 89.33 103.67 103.67 8.00 293.33 - 2.67 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -1365,10 +1365,10 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %ymm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2b %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2w %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2b %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2w %k0, %ymm0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %ymm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s index 102602b..b2b9a93 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s @@ -336,8 +336,8 @@ vpmovq2m %zmm0, %k0 # CHECK-NEXT: 1 1 0.50 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %zmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2d %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2q %k0, %zmm0 # CHECK-NEXT: 1 1 1.00 vpmovd2m %zmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovq2m %zmm0, %k0 @@ -357,7 +357,7 @@ vpmovq2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 65.50 10.50 46.50 46.50 - 95.50 0.50 - - - +# CHECK-NEXT: - - 66.00 10.00 46.50 46.50 - 96.00 - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -510,7 +510,7 @@ vpmovq2m %zmm0, %k0 # CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vxorps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2d %k0, %zmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2q %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2d %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2q %k0, %zmm0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovd2m %zmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovq2m %zmm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dqvl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dqvl.s index 647a5cf..9c7e93f 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dqvl.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dqvl.s @@ -457,10 +457,10 @@ vpmovq2m %ymm0, %k0 # CHECK-NEXT: 1 1 0.33 vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %ymm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %ymm0 # CHECK-NEXT: 1 1 1.00 vpmovd2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovq2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovd2m %ymm0, %k0 @@ -482,7 +482,7 @@ vpmovq2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 77.00 73.00 66.50 66.50 - 85.00 1.00 - - - +# CHECK-NEXT: - - 77.33 73.33 66.50 66.50 - 85.33 - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -690,10 +690,10 @@ vpmovq2m %ymm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vxorps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2d %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2q %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2d %k0, %ymm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2q %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2d %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2q %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2d %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2q %k0, %ymm0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovd2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovq2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovd2m %ymm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s index a789988..fed721e 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s @@ -504,8 +504,8 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %zmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 # CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0 @@ -523,7 +523,7 @@ vpmovw2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 37.50 11.50 52.50 52.50 6.00 182.50 0.50 2.00 +# CHECK-NEXT: - - 38.00 11.00 52.50 52.50 6.00 183.00 - 2.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -751,7 +751,7 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2b %k0, %zmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2w %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2b %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2w %k0, %zmm0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %zmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %zmm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s index 2744d28..cbdeb14 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s @@ -924,10 +924,10 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %ymm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0 # CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0 @@ -947,7 +947,7 @@ vpmovw2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 41.00 37.00 103.67 103.67 8.00 345.00 1.00 2.67 +# CHECK-NEXT: - - 41.33 37.33 103.67 103.67 8.00 345.33 - 2.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1363,10 +1363,10 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2b %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2w %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2b %k0, %ymm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2w %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2b %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2w %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2b %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2w %k0, %ymm0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %ymm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s index 18750b0..046bc8e1 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s @@ -336,8 +336,8 @@ vpmovq2m %zmm0, %k0 # CHECK-NEXT: 1 1 0.50 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %zmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2d %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2q %k0, %zmm0 # CHECK-NEXT: 1 1 1.00 vpmovd2m %zmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovq2m %zmm0, %k0 @@ -355,7 +355,7 @@ vpmovq2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 65.50 10.50 46.50 46.50 - 95.50 0.50 - +# CHECK-NEXT: - - 66.00 10.00 46.50 46.50 - 96.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -508,7 +508,7 @@ vpmovq2m %zmm0, %k0 # CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2d %k0, %zmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2q %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2d %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2q %k0, %zmm0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovd2m %zmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovq2m %zmm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s index 4f2b0d9..6233999 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s @@ -457,10 +457,10 @@ vpmovq2m %ymm0, %k0 # CHECK-NEXT: 1 1 0.33 vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %xmm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %ymm0 -# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %ymm0 # CHECK-NEXT: 1 1 1.00 vpmovd2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovq2m %xmm0, %k0 # CHECK-NEXT: 1 1 1.00 vpmovd2m %ymm0, %k0 @@ -480,7 +480,7 @@ vpmovq2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 77.00 73.00 66.50 66.50 - 85.00 1.00 - +# CHECK-NEXT: - - 77.33 73.33 66.50 66.50 - 85.33 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -688,10 +688,10 @@ vpmovq2m %ymm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2d %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2q %k0, %xmm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2d %k0, %ymm0 -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2q %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2d %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2q %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2d %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2q %k0, %ymm0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovd2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovq2m %xmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - vpmovd2m %ymm0, %k0 -- 2.7.4