[llvm] 7f09aee - [MCA][X86] Add missing VPMOVSX/VPMOVZX from AVX512 tests
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 10 10:18:08 PST 2021
Author: Simon Pilgrim
Date: 2021-12-10T18:12:57Z
New Revision: 7f09aee0f6b4b00508d2cf86b0b1339c8d2ca2d1
URL: https://github.com/llvm/llvm-project/commit/7f09aee0f6b4b00508d2cf86b0b1339c8d2ca2d1
DIFF: https://github.com/llvm/llvm-project/commit/7f09aee0f6b4b00508d2cf86b0b1339c8d2ca2d1.diff
LOG: [MCA][X86] Add missing VPMOVSX/VPMOVZX from AVX512 tests
Added:
Modified:
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
Removed:
################################################################################
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
index 6c2ebb482ce2..94da64e23dbc 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
@@ -303,6 +303,76 @@ vpgatherdd (%rax,%zmm1,2), %zmm2 {k1}
vpgatherqq (%rax,%zmm1,2), %zmm2 {k1}
vpgatherqd (%rax,%zmm1,2), %ymm2 {k1}
+vpmovsxbd %xmm16, %zmm19
+vpmovsxbd (%rax), %zmm19
+vpmovsxbd %xmm16, %zmm19 {k1}
+vpmovsxbd (%rax), %zmm19 {k1}
+vpmovsxbd %xmm16, %zmm19 {z}{k1}
+vpmovsxbd (%rax), %zmm19 {z}{k1}
+
+vpmovsxbq %xmm16, %zmm19
+vpmovsxbq (%rax), %zmm19
+vpmovsxbq %xmm16, %zmm19 {k1}
+vpmovsxbq (%rax), %zmm19 {k1}
+vpmovsxbq %xmm16, %zmm19 {z}{k1}
+vpmovsxbq (%rax), %zmm19 {z}{k1}
+
+vpmovsxdq %ymm16, %zmm19
+vpmovsxdq (%rax), %zmm19
+vpmovsxdq %ymm16, %zmm19 {k1}
+vpmovsxdq (%rax), %zmm19 {k1}
+vpmovsxdq %ymm16, %zmm19 {z}{k1}
+vpmovsxdq (%rax), %zmm19 {z}{k1}
+
+vpmovsxwd %ymm16, %zmm19
+vpmovsxwd (%rax), %zmm19
+vpmovsxwd %ymm16, %zmm19 {k1}
+vpmovsxwd (%rax), %zmm19 {k1}
+vpmovsxwd %ymm16, %zmm19 {z}{k1}
+vpmovsxwd (%rax), %zmm19 {z}{k1}
+
+vpmovsxwq %xmm16, %zmm19
+vpmovsxwq (%rax), %zmm19
+vpmovsxwq %xmm16, %zmm19 {k1}
+vpmovsxwq (%rax), %zmm19 {k1}
+vpmovsxwq %xmm16, %zmm19 {z}{k1}
+vpmovsxwq (%rax), %zmm19 {z}{k1}
+
+vpmovzxbd %xmm16, %zmm19
+vpmovzxbd (%rax), %zmm19
+vpmovzxbd %xmm16, %zmm19 {k1}
+vpmovzxbd (%rax), %zmm19 {k1}
+vpmovzxbd %xmm16, %zmm19 {z}{k1}
+vpmovzxbd (%rax), %zmm19 {z}{k1}
+
+vpmovzxbq %xmm16, %zmm19
+vpmovzxbq (%rax), %zmm19
+vpmovzxbq %xmm16, %zmm19 {k1}
+vpmovzxbq (%rax), %zmm19 {k1}
+vpmovzxbq %xmm16, %zmm19 {z}{k1}
+vpmovzxbq (%rax), %zmm19 {z}{k1}
+
+vpmovzxdq %ymm16, %zmm19
+vpmovzxdq (%rax), %zmm19
+vpmovzxdq %ymm16, %zmm19 {k1}
+vpmovzxdq (%rax), %zmm19 {k1}
+vpmovzxdq %ymm16, %zmm19 {z}{k1}
+vpmovzxdq (%rax), %zmm19 {z}{k1}
+
+vpmovzxwd %ymm16, %zmm19
+vpmovzxwd (%rax), %zmm19
+vpmovzxwd %ymm16, %zmm19 {k1}
+vpmovzxwd (%rax), %zmm19 {k1}
+vpmovzxwd %ymm16, %zmm19 {z}{k1}
+vpmovzxwd (%rax), %zmm19 {z}{k1}
+
+vpmovzxwq %xmm16, %zmm19
+vpmovzxwq (%rax), %zmm19
+vpmovzxwq %xmm16, %zmm19 {k1}
+vpmovzxwq (%rax), %zmm19 {k1}
+vpmovzxwq %xmm16, %zmm19 {z}{k1}
+vpmovzxwq (%rax), %zmm19 {z}{k1}
+
vpmulld %zmm16, %zmm17, %zmm19
vpmulld (%rax), %zmm17, %zmm19
vpmulld (%rax){1to16}, %zmm17, %zmm19
@@ -943,6 +1013,66 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 5 0.50 * vpgatherdd (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: 1 5 0.50 * vpgatherqq (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: 1 5 0.50 * vpgatherqd (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %ymm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %ymm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %ymm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %ymm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 5 1.00 vpmulld %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19
@@ -1282,7 +1412,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 1506.00 138.67 201.67 - 324.67 194.00 194.00
+# CHECK-NEXT: - 1506.00 138.67 201.67 - 384.67 209.00 209.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -1552,6 +1682,66 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherdd (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherqq (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherqd (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %ymm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %ymm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %ymm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %ymm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 - - - - - vpmulld %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to16}, %zmm17, %zmm19
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 16c3d44e2632..3ccb8740de14 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
@@ -130,6 +130,20 @@ vpermw (%rax), %zmm17, %zmm19 {k1}
vpermw %zmm16, %zmm17, %zmm19 {z}{k1}
vpermw (%rax), %zmm17, %zmm19 {z}{k1}
+vpmovsxbw %ymm16, %zmm19
+vpmovsxbw (%rax), %zmm19
+vpmovsxbw %ymm16, %zmm19 {k1}
+vpmovsxbw (%rax), %zmm19 {k1}
+vpmovsxbw %ymm16, %zmm19 {z}{k1}
+vpmovsxbw (%rax), %zmm19 {z}{k1}
+
+vpmovzxbw %ymm16, %zmm19
+vpmovzxbw (%rax), %zmm19
+vpmovzxbw %ymm16, %zmm19 {k1}
+vpmovzxbw (%rax), %zmm19 {k1}
+vpmovzxbw %ymm16, %zmm19 {z}{k1}
+vpmovzxbw (%rax), %zmm19 {z}{k1}
+
vpshufb %zmm16, %zmm17, %zmm19
vpshufb (%rax), %zmm17, %zmm19
vpshufb %zmm16, %zmm17, %zmm19 {k1}
@@ -344,6 +358,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %ymm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %ymm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpshufb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %zmm17, %zmm19
# CHECK-NEXT: 1 1 0.50 vpshufb %zmm16, %zmm17, %zmm19 {%k1}
@@ -435,7 +461,7 @@ vpmovw2m %zmm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 10.67 47.67 - 129.67 41.50 41.50
+# CHECK-NEXT: - - 10.67 47.67 - 141.67 44.50 44.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -549,6 +575,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - 1.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1}
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 5d90694440ff..2ee0e5aab483 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
@@ -221,6 +221,34 @@ vpermw (%rax), %ymm17, %ymm19 {k1}
vpermw %ymm16, %ymm17, %ymm19 {z}{k1}
vpermw (%rax), %ymm17, %ymm19 {z}{k1}
+vpmovsxbw %xmm16, %xmm19
+vpmovsxbw (%rax), %xmm19
+vpmovsxbw %xmm16, %xmm19 {k1}
+vpmovsxbw (%rax), %xmm19 {k1}
+vpmovsxbw %xmm16, %xmm19 {z}{k1}
+vpmovsxbw (%rax), %xmm19 {z}{k1}
+
+vpmovsxbw %xmm16, %ymm19
+vpmovsxbw (%rax), %ymm19
+vpmovsxbw %xmm16, %ymm19 {k1}
+vpmovsxbw (%rax), %ymm19 {k1}
+vpmovsxbw %xmm16, %ymm19 {z}{k1}
+vpmovsxbw (%rax), %ymm19 {z}{k1}
+
+vpmovzxbw %xmm16, %xmm19
+vpmovzxbw (%rax), %xmm19
+vpmovzxbw %xmm16, %xmm19 {k1}
+vpmovzxbw (%rax), %xmm19 {k1}
+vpmovzxbw %xmm16, %xmm19 {z}{k1}
+vpmovzxbw (%rax), %xmm19 {z}{k1}
+
+vpmovzxbw %xmm16, %ymm19
+vpmovzxbw (%rax), %ymm19
+vpmovzxbw %xmm16, %ymm19 {k1}
+vpmovzxbw (%rax), %ymm19 {k1}
+vpmovzxbw %xmm16, %ymm19 {z}{k1}
+vpmovzxbw (%rax), %ymm19 {z}{k1}
+
vpshufb %xmm16, %xmm17, %xmm19
vpshufb (%rax), %xmm17, %xmm19
vpshufb %xmm16, %xmm17, %xmm19 {k1}
@@ -604,6 +632,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19
# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19 {%k1}
@@ -773,7 +825,7 @@ vpmovw2m %ymm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 13.33 122.33 - 204.33 83.00 83.00
+# CHECK-NEXT: - - 13.33 122.33 - 228.33 89.00 89.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -961,6 +1013,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - 1.00 - - vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %xmm16, %xmm17, %xmm19 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
index cf5a27135132..696408ca6ec7 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
@@ -621,6 +621,146 @@ vpgatherdd (%rax,%xmm1,2), %xmm2 {k1}
vpgatherqq (%rax,%xmm1,2), %xmm2 {k1}
vpgatherqd (%rax,%xmm1,2), %xmm2 {k1}
+vpmovsxbd %xmm16, %xmm19
+vpmovsxbd (%rax), %xmm19
+vpmovsxbd %xmm16, %xmm19 {k1}
+vpmovsxbd (%rax), %xmm19 {k1}
+vpmovsxbd %xmm16, %xmm19 {z}{k1}
+vpmovsxbd (%rax), %xmm19 {z}{k1}
+
+vpmovsxbd %xmm16, %ymm19
+vpmovsxbd (%rax), %ymm19
+vpmovsxbd %xmm16, %ymm19 {k1}
+vpmovsxbd (%rax), %ymm19 {k1}
+vpmovsxbd %xmm16, %ymm19 {z}{k1}
+vpmovsxbd (%rax), %ymm19 {z}{k1}
+
+vpmovsxbq %xmm16, %xmm19
+vpmovsxbq (%rax), %xmm19
+vpmovsxbq %xmm16, %xmm19 {k1}
+vpmovsxbq (%rax), %xmm19 {k1}
+vpmovsxbq %xmm16, %xmm19 {z}{k1}
+vpmovsxbq (%rax), %xmm19 {z}{k1}
+
+vpmovsxbq %xmm16, %ymm19
+vpmovsxbq (%rax), %ymm19
+vpmovsxbq %xmm16, %ymm19 {k1}
+vpmovsxbq (%rax), %ymm19 {k1}
+vpmovsxbq %xmm16, %ymm19 {z}{k1}
+vpmovsxbq (%rax), %ymm19 {z}{k1}
+
+vpmovsxdq %xmm16, %xmm19
+vpmovsxdq (%rax), %xmm19
+vpmovsxdq %xmm16, %xmm19 {k1}
+vpmovsxdq (%rax), %xmm19 {k1}
+vpmovsxdq %xmm16, %xmm19 {z}{k1}
+vpmovsxdq (%rax), %xmm19 {z}{k1}
+
+vpmovsxdq %xmm16, %ymm19
+vpmovsxdq (%rax), %ymm19
+vpmovsxdq %xmm16, %ymm19 {k1}
+vpmovsxdq (%rax), %ymm19 {k1}
+vpmovsxdq %xmm16, %ymm19 {z}{k1}
+vpmovsxdq (%rax), %ymm19 {z}{k1}
+
+vpmovsxwd %xmm16, %xmm19
+vpmovsxwd (%rax), %xmm19
+vpmovsxwd %xmm16, %xmm19 {k1}
+vpmovsxwd (%rax), %xmm19 {k1}
+vpmovsxwd %xmm16, %xmm19 {z}{k1}
+vpmovsxwd (%rax), %xmm19 {z}{k1}
+
+vpmovsxwd %xmm16, %ymm19
+vpmovsxwd (%rax), %ymm19
+vpmovsxwd %xmm16, %ymm19 {k1}
+vpmovsxwd (%rax), %ymm19 {k1}
+vpmovsxwd %xmm16, %ymm19 {z}{k1}
+vpmovsxwd (%rax), %ymm19 {z}{k1}
+
+vpmovsxwq %xmm16, %xmm19
+vpmovsxwq (%rax), %xmm19
+vpmovsxwq %xmm16, %xmm19 {k1}
+vpmovsxwq (%rax), %xmm19 {k1}
+vpmovsxwq %xmm16, %xmm19 {z}{k1}
+vpmovsxwq (%rax), %xmm19 {z}{k1}
+
+vpmovsxwq %xmm16, %ymm19
+vpmovsxwq (%rax), %ymm19
+vpmovsxwq %xmm16, %ymm19 {k1}
+vpmovsxwq (%rax), %ymm19 {k1}
+vpmovsxwq %xmm16, %ymm19 {z}{k1}
+vpmovsxwq (%rax), %ymm19 {z}{k1}
+
+vpmovzxbd %xmm16, %xmm19
+vpmovzxbd (%rax), %xmm19
+vpmovzxbd %xmm16, %xmm19 {k1}
+vpmovzxbd (%rax), %xmm19 {k1}
+vpmovzxbd %xmm16, %xmm19 {z}{k1}
+vpmovzxbd (%rax), %xmm19 {z}{k1}
+
+vpmovzxbd %xmm16, %ymm19
+vpmovzxbd (%rax), %ymm19
+vpmovzxbd %xmm16, %ymm19 {k1}
+vpmovzxbd (%rax), %ymm19 {k1}
+vpmovzxbd %xmm16, %ymm19 {z}{k1}
+vpmovzxbd (%rax), %ymm19 {z}{k1}
+
+vpmovzxbq %xmm16, %xmm19
+vpmovzxbq (%rax), %xmm19
+vpmovzxbq %xmm16, %xmm19 {k1}
+vpmovzxbq (%rax), %xmm19 {k1}
+vpmovzxbq %xmm16, %xmm19 {z}{k1}
+vpmovzxbq (%rax), %xmm19 {z}{k1}
+
+vpmovzxbq %xmm16, %ymm19
+vpmovzxbq (%rax), %ymm19
+vpmovzxbq %xmm16, %ymm19 {k1}
+vpmovzxbq (%rax), %ymm19 {k1}
+vpmovzxbq %xmm16, %ymm19 {z}{k1}
+vpmovzxbq (%rax), %ymm19 {z}{k1}
+
+vpmovzxdq %xmm16, %xmm19
+vpmovzxdq (%rax), %xmm19
+vpmovzxdq %xmm16, %xmm19 {k1}
+vpmovzxdq (%rax), %xmm19 {k1}
+vpmovzxdq %xmm16, %xmm19 {z}{k1}
+vpmovzxdq (%rax), %xmm19 {z}{k1}
+
+vpmovzxdq %xmm16, %ymm19
+vpmovzxdq (%rax), %ymm19
+vpmovzxdq %xmm16, %ymm19 {k1}
+vpmovzxdq (%rax), %ymm19 {k1}
+vpmovzxdq %xmm16, %ymm19 {z}{k1}
+vpmovzxdq (%rax), %ymm19 {z}{k1}
+
+vpmovzxwd %xmm16, %xmm19
+vpmovzxwd (%rax), %xmm19
+vpmovzxwd %xmm16, %xmm19 {k1}
+vpmovzxwd (%rax), %xmm19 {k1}
+vpmovzxwd %xmm16, %xmm19 {z}{k1}
+vpmovzxwd (%rax), %xmm19 {z}{k1}
+
+vpmovzxwd %xmm16, %ymm19
+vpmovzxwd (%rax), %ymm19
+vpmovzxwd %xmm16, %ymm19 {k1}
+vpmovzxwd (%rax), %ymm19 {k1}
+vpmovzxwd %xmm16, %ymm19 {z}{k1}
+vpmovzxwd (%rax), %ymm19 {z}{k1}
+
+vpmovzxwq %xmm16, %xmm19
+vpmovzxwq (%rax), %xmm19
+vpmovzxwq %xmm16, %xmm19 {k1}
+vpmovzxwq (%rax), %xmm19 {k1}
+vpmovzxwq %xmm16, %xmm19 {z}{k1}
+vpmovzxwq (%rax), %xmm19 {z}{k1}
+
+vpmovzxwq %xmm16, %ymm19
+vpmovzxwq (%rax), %ymm19
+vpmovzxwq %xmm16, %ymm19 {k1}
+vpmovzxwq (%rax), %ymm19 {k1}
+vpmovzxwq %xmm16, %ymm19 {z}{k1}
+vpmovzxwq (%rax), %ymm19 {z}{k1}
+
vpmulld %xmm16, %xmm17, %xmm19
vpmulld (%rax), %xmm17, %xmm19
vpmulld (%rax){1to4}, %xmm17, %xmm19
@@ -1556,6 +1696,126 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 5 0.50 * vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 1 5 0.50 * vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 1 5 0.50 * vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 5 1.00 vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax), %xmm17, %xmm19
# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19
@@ -1905,7 +2165,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 1935.00 196.00 326.50 - 437.50 298.00 298.00
+# CHECK-NEXT: - 1935.00 196.00 326.50 - 557.50 328.00 328.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -2459,6 +2719,126 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 - - - - - vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to4}, %xmm17, %xmm19
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
index b597f7e767f8..b843e7ac84a5 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
@@ -303,6 +303,76 @@ vpgatherdd (%rax,%zmm1,2), %zmm2 {k1}
vpgatherqq (%rax,%zmm1,2), %zmm2 {k1}
vpgatherqd (%rax,%zmm1,2), %ymm2 {k1}
+vpmovsxbd %xmm16, %zmm19
+vpmovsxbd (%rax), %zmm19
+vpmovsxbd %xmm16, %zmm19 {k1}
+vpmovsxbd (%rax), %zmm19 {k1}
+vpmovsxbd %xmm16, %zmm19 {z}{k1}
+vpmovsxbd (%rax), %zmm19 {z}{k1}
+
+vpmovsxbq %xmm16, %zmm19
+vpmovsxbq (%rax), %zmm19
+vpmovsxbq %xmm16, %zmm19 {k1}
+vpmovsxbq (%rax), %zmm19 {k1}
+vpmovsxbq %xmm16, %zmm19 {z}{k1}
+vpmovsxbq (%rax), %zmm19 {z}{k1}
+
+vpmovsxdq %ymm16, %zmm19
+vpmovsxdq (%rax), %zmm19
+vpmovsxdq %ymm16, %zmm19 {k1}
+vpmovsxdq (%rax), %zmm19 {k1}
+vpmovsxdq %ymm16, %zmm19 {z}{k1}
+vpmovsxdq (%rax), %zmm19 {z}{k1}
+
+vpmovsxwd %ymm16, %zmm19
+vpmovsxwd (%rax), %zmm19
+vpmovsxwd %ymm16, %zmm19 {k1}
+vpmovsxwd (%rax), %zmm19 {k1}
+vpmovsxwd %ymm16, %zmm19 {z}{k1}
+vpmovsxwd (%rax), %zmm19 {z}{k1}
+
+vpmovsxwq %xmm16, %zmm19
+vpmovsxwq (%rax), %zmm19
+vpmovsxwq %xmm16, %zmm19 {k1}
+vpmovsxwq (%rax), %zmm19 {k1}
+vpmovsxwq %xmm16, %zmm19 {z}{k1}
+vpmovsxwq (%rax), %zmm19 {z}{k1}
+
+vpmovzxbd %xmm16, %zmm19
+vpmovzxbd (%rax), %zmm19
+vpmovzxbd %xmm16, %zmm19 {k1}
+vpmovzxbd (%rax), %zmm19 {k1}
+vpmovzxbd %xmm16, %zmm19 {z}{k1}
+vpmovzxbd (%rax), %zmm19 {z}{k1}
+
+vpmovzxbq %xmm16, %zmm19
+vpmovzxbq (%rax), %zmm19
+vpmovzxbq %xmm16, %zmm19 {k1}
+vpmovzxbq (%rax), %zmm19 {k1}
+vpmovzxbq %xmm16, %zmm19 {z}{k1}
+vpmovzxbq (%rax), %zmm19 {z}{k1}
+
+vpmovzxdq %ymm16, %zmm19
+vpmovzxdq (%rax), %zmm19
+vpmovzxdq %ymm16, %zmm19 {k1}
+vpmovzxdq (%rax), %zmm19 {k1}
+vpmovzxdq %ymm16, %zmm19 {z}{k1}
+vpmovzxdq (%rax), %zmm19 {z}{k1}
+
+vpmovzxwd %ymm16, %zmm19
+vpmovzxwd (%rax), %zmm19
+vpmovzxwd %ymm16, %zmm19 {k1}
+vpmovzxwd (%rax), %zmm19 {k1}
+vpmovzxwd %ymm16, %zmm19 {z}{k1}
+vpmovzxwd (%rax), %zmm19 {z}{k1}
+
+vpmovzxwq %xmm16, %zmm19
+vpmovzxwq (%rax), %zmm19
+vpmovzxwq %xmm16, %zmm19 {k1}
+vpmovzxwq (%rax), %zmm19 {k1}
+vpmovzxwq %xmm16, %zmm19 {z}{k1}
+vpmovzxwq (%rax), %zmm19 {z}{k1}
+
vpmulld %zmm16, %zmm17, %zmm19
vpmulld (%rax), %zmm17, %zmm19
vpmulld (%rax){1to16}, %zmm17, %zmm19
@@ -943,6 +1013,66 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 5 25 8.00 * vpgatherdd (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: 5 21 4.00 * vpgatherqq (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: 5 21 4.00 * vpgatherqd (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 vpmulld %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %zmm17, %zmm19
# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19
@@ -1286,7 +1416,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 612.00 209.67 30.67 230.00 230.00 - 447.67 2.00 - - -
+# CHECK-NEXT: - 612.00 209.67 30.67 245.00 245.00 - 507.67 2.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1556,6 +1686,66 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - 1.58 0.58 8.00 8.00 - 0.58 0.25 - - - vpgatherdd (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 4.00 4.00 - 0.58 0.25 - - - vpgatherqq (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 4.00 4.00 - 0.58 0.25 - - - vpgatherqd (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpmulld %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - - - vpmulld (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - - - vpmulld (%rax){1to16}, %zmm17, %zmm19
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 052ba7515570..31a755f39993 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
@@ -130,6 +130,20 @@ vpermw (%rax), %zmm17, %zmm19 {k1}
vpermw %zmm16, %zmm17, %zmm19 {z}{k1}
vpermw (%rax), %zmm17, %zmm19 {z}{k1}
+vpmovsxbw %ymm16, %zmm19
+vpmovsxbw (%rax), %zmm19
+vpmovsxbw %ymm16, %zmm19 {k1}
+vpmovsxbw (%rax), %zmm19 {k1}
+vpmovsxbw %ymm16, %zmm19 {z}{k1}
+vpmovsxbw (%rax), %zmm19 {z}{k1}
+
+vpmovzxbw %ymm16, %zmm19
+vpmovzxbw (%rax), %zmm19
+vpmovzxbw %ymm16, %zmm19 {k1}
+vpmovzxbw (%rax), %zmm19 {k1}
+vpmovzxbw %ymm16, %zmm19 {z}{k1}
+vpmovzxbw (%rax), %zmm19 {z}{k1}
+
vpshufb %zmm16, %zmm17, %zmm19
vpshufb (%rax), %zmm17, %zmm19
vpshufb %zmm16, %zmm17, %zmm19 {k1}
@@ -344,6 +358,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %zmm17, %zmm19
# CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 {%k1}
@@ -439,7 +465,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: - - 32.50 8.50 41.50 41.50 - 152.50 0.50 - - -
+# CHECK-NEXT: - - 32.50 8.50 44.50 44.50 - 164.50 0.50 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -553,6 +579,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %zmm16, %zmm17, %zmm19 {%k1}
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 c755f1a9e4e9..dfd5587c0079 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
@@ -221,6 +221,34 @@ vpermw (%rax), %ymm17, %ymm19 {k1}
vpermw %ymm16, %ymm17, %ymm19 {z}{k1}
vpermw (%rax), %ymm17, %ymm19 {z}{k1}
+vpmovsxbw %xmm16, %xmm19
+vpmovsxbw (%rax), %xmm19
+vpmovsxbw %xmm16, %xmm19 {k1}
+vpmovsxbw (%rax), %xmm19 {k1}
+vpmovsxbw %xmm16, %xmm19 {z}{k1}
+vpmovsxbw (%rax), %xmm19 {z}{k1}
+
+vpmovsxbw %xmm16, %ymm19
+vpmovsxbw (%rax), %ymm19
+vpmovsxbw %xmm16, %ymm19 {k1}
+vpmovsxbw (%rax), %ymm19 {k1}
+vpmovsxbw %xmm16, %ymm19 {z}{k1}
+vpmovsxbw (%rax), %ymm19 {z}{k1}
+
+vpmovzxbw %xmm16, %xmm19
+vpmovzxbw (%rax), %xmm19
+vpmovzxbw %xmm16, %xmm19 {k1}
+vpmovzxbw (%rax), %xmm19 {k1}
+vpmovzxbw %xmm16, %xmm19 {z}{k1}
+vpmovzxbw (%rax), %xmm19 {z}{k1}
+
+vpmovzxbw %xmm16, %ymm19
+vpmovzxbw (%rax), %ymm19
+vpmovzxbw %xmm16, %ymm19 {k1}
+vpmovzxbw (%rax), %ymm19 {k1}
+vpmovzxbw %xmm16, %ymm19 {z}{k1}
+vpmovzxbw (%rax), %ymm19 {z}{k1}
+
vpshufb %xmm16, %xmm17, %xmm19
vpshufb (%rax), %xmm17, %xmm19
vpshufb %xmm16, %xmm17, %xmm19 {k1}
@@ -604,6 +632,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 2 6 2.00 vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19
# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 {%k1}
@@ -777,7 +829,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: - - 33.00 29.00 83.00 83.00 - 289.00 1.00 - - -
+# CHECK-NEXT: - - 33.00 29.00 89.00 89.00 - 313.00 1.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -965,6 +1017,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm16, %xmm17, %xmm19 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
index 36471be171cf..e2f523fa1330 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
@@ -621,6 +621,146 @@ vpgatherdd (%rax,%xmm1,2), %xmm2 {k1}
vpgatherqq (%rax,%xmm1,2), %xmm2 {k1}
vpgatherqd (%rax,%xmm1,2), %xmm2 {k1}
+vpmovsxbd %xmm16, %xmm19
+vpmovsxbd (%rax), %xmm19
+vpmovsxbd %xmm16, %xmm19 {k1}
+vpmovsxbd (%rax), %xmm19 {k1}
+vpmovsxbd %xmm16, %xmm19 {z}{k1}
+vpmovsxbd (%rax), %xmm19 {z}{k1}
+
+vpmovsxbd %xmm16, %ymm19
+vpmovsxbd (%rax), %ymm19
+vpmovsxbd %xmm16, %ymm19 {k1}
+vpmovsxbd (%rax), %ymm19 {k1}
+vpmovsxbd %xmm16, %ymm19 {z}{k1}
+vpmovsxbd (%rax), %ymm19 {z}{k1}
+
+vpmovsxbq %xmm16, %xmm19
+vpmovsxbq (%rax), %xmm19
+vpmovsxbq %xmm16, %xmm19 {k1}
+vpmovsxbq (%rax), %xmm19 {k1}
+vpmovsxbq %xmm16, %xmm19 {z}{k1}
+vpmovsxbq (%rax), %xmm19 {z}{k1}
+
+vpmovsxbq %xmm16, %ymm19
+vpmovsxbq (%rax), %ymm19
+vpmovsxbq %xmm16, %ymm19 {k1}
+vpmovsxbq (%rax), %ymm19 {k1}
+vpmovsxbq %xmm16, %ymm19 {z}{k1}
+vpmovsxbq (%rax), %ymm19 {z}{k1}
+
+vpmovsxdq %xmm16, %xmm19
+vpmovsxdq (%rax), %xmm19
+vpmovsxdq %xmm16, %xmm19 {k1}
+vpmovsxdq (%rax), %xmm19 {k1}
+vpmovsxdq %xmm16, %xmm19 {z}{k1}
+vpmovsxdq (%rax), %xmm19 {z}{k1}
+
+vpmovsxdq %xmm16, %ymm19
+vpmovsxdq (%rax), %ymm19
+vpmovsxdq %xmm16, %ymm19 {k1}
+vpmovsxdq (%rax), %ymm19 {k1}
+vpmovsxdq %xmm16, %ymm19 {z}{k1}
+vpmovsxdq (%rax), %ymm19 {z}{k1}
+
+vpmovsxwd %xmm16, %xmm19
+vpmovsxwd (%rax), %xmm19
+vpmovsxwd %xmm16, %xmm19 {k1}
+vpmovsxwd (%rax), %xmm19 {k1}
+vpmovsxwd %xmm16, %xmm19 {z}{k1}
+vpmovsxwd (%rax), %xmm19 {z}{k1}
+
+vpmovsxwd %xmm16, %ymm19
+vpmovsxwd (%rax), %ymm19
+vpmovsxwd %xmm16, %ymm19 {k1}
+vpmovsxwd (%rax), %ymm19 {k1}
+vpmovsxwd %xmm16, %ymm19 {z}{k1}
+vpmovsxwd (%rax), %ymm19 {z}{k1}
+
+vpmovsxwq %xmm16, %xmm19
+vpmovsxwq (%rax), %xmm19
+vpmovsxwq %xmm16, %xmm19 {k1}
+vpmovsxwq (%rax), %xmm19 {k1}
+vpmovsxwq %xmm16, %xmm19 {z}{k1}
+vpmovsxwq (%rax), %xmm19 {z}{k1}
+
+vpmovsxwq %xmm16, %ymm19
+vpmovsxwq (%rax), %ymm19
+vpmovsxwq %xmm16, %ymm19 {k1}
+vpmovsxwq (%rax), %ymm19 {k1}
+vpmovsxwq %xmm16, %ymm19 {z}{k1}
+vpmovsxwq (%rax), %ymm19 {z}{k1}
+
+vpmovzxbd %xmm16, %xmm19
+vpmovzxbd (%rax), %xmm19
+vpmovzxbd %xmm16, %xmm19 {k1}
+vpmovzxbd (%rax), %xmm19 {k1}
+vpmovzxbd %xmm16, %xmm19 {z}{k1}
+vpmovzxbd (%rax), %xmm19 {z}{k1}
+
+vpmovzxbd %xmm16, %ymm19
+vpmovzxbd (%rax), %ymm19
+vpmovzxbd %xmm16, %ymm19 {k1}
+vpmovzxbd (%rax), %ymm19 {k1}
+vpmovzxbd %xmm16, %ymm19 {z}{k1}
+vpmovzxbd (%rax), %ymm19 {z}{k1}
+
+vpmovzxbq %xmm16, %xmm19
+vpmovzxbq (%rax), %xmm19
+vpmovzxbq %xmm16, %xmm19 {k1}
+vpmovzxbq (%rax), %xmm19 {k1}
+vpmovzxbq %xmm16, %xmm19 {z}{k1}
+vpmovzxbq (%rax), %xmm19 {z}{k1}
+
+vpmovzxbq %xmm16, %ymm19
+vpmovzxbq (%rax), %ymm19
+vpmovzxbq %xmm16, %ymm19 {k1}
+vpmovzxbq (%rax), %ymm19 {k1}
+vpmovzxbq %xmm16, %ymm19 {z}{k1}
+vpmovzxbq (%rax), %ymm19 {z}{k1}
+
+vpmovzxdq %xmm16, %xmm19
+vpmovzxdq (%rax), %xmm19
+vpmovzxdq %xmm16, %xmm19 {k1}
+vpmovzxdq (%rax), %xmm19 {k1}
+vpmovzxdq %xmm16, %xmm19 {z}{k1}
+vpmovzxdq (%rax), %xmm19 {z}{k1}
+
+vpmovzxdq %xmm16, %ymm19
+vpmovzxdq (%rax), %ymm19
+vpmovzxdq %xmm16, %ymm19 {k1}
+vpmovzxdq (%rax), %ymm19 {k1}
+vpmovzxdq %xmm16, %ymm19 {z}{k1}
+vpmovzxdq (%rax), %ymm19 {z}{k1}
+
+vpmovzxwd %xmm16, %xmm19
+vpmovzxwd (%rax), %xmm19
+vpmovzxwd %xmm16, %xmm19 {k1}
+vpmovzxwd (%rax), %xmm19 {k1}
+vpmovzxwd %xmm16, %xmm19 {z}{k1}
+vpmovzxwd (%rax), %xmm19 {z}{k1}
+
+vpmovzxwd %xmm16, %ymm19
+vpmovzxwd (%rax), %ymm19
+vpmovzxwd %xmm16, %ymm19 {k1}
+vpmovzxwd (%rax), %ymm19 {k1}
+vpmovzxwd %xmm16, %ymm19 {z}{k1}
+vpmovzxwd (%rax), %ymm19 {z}{k1}
+
+vpmovzxwq %xmm16, %xmm19
+vpmovzxwq (%rax), %xmm19
+vpmovzxwq %xmm16, %xmm19 {k1}
+vpmovzxwq (%rax), %xmm19 {k1}
+vpmovzxwq %xmm16, %xmm19 {z}{k1}
+vpmovzxwq (%rax), %xmm19 {z}{k1}
+
+vpmovzxwq %xmm16, %ymm19
+vpmovzxwq (%rax), %ymm19
+vpmovzxwq %xmm16, %ymm19 {k1}
+vpmovzxwq (%rax), %ymm19 {k1}
+vpmovzxwq %xmm16, %ymm19 {z}{k1}
+vpmovzxwq (%rax), %ymm19 {z}{k1}
+
vpmulld %xmm16, %xmm17, %xmm19
vpmulld (%rax), %xmm17, %xmm19
vpmulld (%rax){1to4}, %xmm17, %xmm19
@@ -1556,6 +1696,126 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 5 19 2.00 * vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 5 17 1.00 * vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 5 17 1.00 * vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax), %xmm17, %xmm19
# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19
@@ -1909,7 +2169,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 423.00 242.33 154.33 320.00 320.00 - 541.33 4.00 - - -
+# CHECK-NEXT: - 423.00 242.33 154.33 350.00 350.00 - 661.33 4.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2463,6 +2723,126 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 1.58 0.58 2.00 2.00 - 0.58 0.25 - - - vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 1.00 1.00 - 0.58 0.25 - - - vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 1.00 1.00 - 0.58 0.25 - - - vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 1.00 - - - - - - - - vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vpmulld (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vpmulld (%rax){1to4}, %xmm17, %xmm19
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
index 1e42d14a56e2..6994323cbf79 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
@@ -303,6 +303,76 @@ vpgatherdd (%rax,%zmm1,2), %zmm2 {k1}
vpgatherqq (%rax,%zmm1,2), %zmm2 {k1}
vpgatherqd (%rax,%zmm1,2), %ymm2 {k1}
+vpmovsxbd %xmm16, %zmm19
+vpmovsxbd (%rax), %zmm19
+vpmovsxbd %xmm16, %zmm19 {k1}
+vpmovsxbd (%rax), %zmm19 {k1}
+vpmovsxbd %xmm16, %zmm19 {z}{k1}
+vpmovsxbd (%rax), %zmm19 {z}{k1}
+
+vpmovsxbq %xmm16, %zmm19
+vpmovsxbq (%rax), %zmm19
+vpmovsxbq %xmm16, %zmm19 {k1}
+vpmovsxbq (%rax), %zmm19 {k1}
+vpmovsxbq %xmm16, %zmm19 {z}{k1}
+vpmovsxbq (%rax), %zmm19 {z}{k1}
+
+vpmovsxdq %ymm16, %zmm19
+vpmovsxdq (%rax), %zmm19
+vpmovsxdq %ymm16, %zmm19 {k1}
+vpmovsxdq (%rax), %zmm19 {k1}
+vpmovsxdq %ymm16, %zmm19 {z}{k1}
+vpmovsxdq (%rax), %zmm19 {z}{k1}
+
+vpmovsxwd %ymm16, %zmm19
+vpmovsxwd (%rax), %zmm19
+vpmovsxwd %ymm16, %zmm19 {k1}
+vpmovsxwd (%rax), %zmm19 {k1}
+vpmovsxwd %ymm16, %zmm19 {z}{k1}
+vpmovsxwd (%rax), %zmm19 {z}{k1}
+
+vpmovsxwq %xmm16, %zmm19
+vpmovsxwq (%rax), %zmm19
+vpmovsxwq %xmm16, %zmm19 {k1}
+vpmovsxwq (%rax), %zmm19 {k1}
+vpmovsxwq %xmm16, %zmm19 {z}{k1}
+vpmovsxwq (%rax), %zmm19 {z}{k1}
+
+vpmovzxbd %xmm16, %zmm19
+vpmovzxbd (%rax), %zmm19
+vpmovzxbd %xmm16, %zmm19 {k1}
+vpmovzxbd (%rax), %zmm19 {k1}
+vpmovzxbd %xmm16, %zmm19 {z}{k1}
+vpmovzxbd (%rax), %zmm19 {z}{k1}
+
+vpmovzxbq %xmm16, %zmm19
+vpmovzxbq (%rax), %zmm19
+vpmovzxbq %xmm16, %zmm19 {k1}
+vpmovzxbq (%rax), %zmm19 {k1}
+vpmovzxbq %xmm16, %zmm19 {z}{k1}
+vpmovzxbq (%rax), %zmm19 {z}{k1}
+
+vpmovzxdq %ymm16, %zmm19
+vpmovzxdq (%rax), %zmm19
+vpmovzxdq %ymm16, %zmm19 {k1}
+vpmovzxdq (%rax), %zmm19 {k1}
+vpmovzxdq %ymm16, %zmm19 {z}{k1}
+vpmovzxdq (%rax), %zmm19 {z}{k1}
+
+vpmovzxwd %ymm16, %zmm19
+vpmovzxwd (%rax), %zmm19
+vpmovzxwd %ymm16, %zmm19 {k1}
+vpmovzxwd (%rax), %zmm19 {k1}
+vpmovzxwd %ymm16, %zmm19 {z}{k1}
+vpmovzxwd (%rax), %zmm19 {z}{k1}
+
+vpmovzxwq %xmm16, %zmm19
+vpmovzxwq (%rax), %zmm19
+vpmovzxwq %xmm16, %zmm19 {k1}
+vpmovzxwq (%rax), %zmm19 {k1}
+vpmovzxwq %xmm16, %zmm19 {z}{k1}
+vpmovzxwq (%rax), %zmm19 {z}{k1}
+
vpmulld %zmm16, %zmm17, %zmm19
vpmulld (%rax), %zmm17, %zmm19
vpmulld (%rax){1to16}, %zmm17, %zmm19
@@ -943,6 +1013,66 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 5 25 8.00 * vpgatherdd (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: 5 21 4.00 * vpgatherqq (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: 5 21 4.00 * vpgatherqd (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 vpmulld %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %zmm17, %zmm19
# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19
@@ -1284,7 +1414,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 612.00 209.67 30.67 230.00 230.00 - 447.67 2.00 -
+# CHECK-NEXT: - 612.00 209.67 30.67 245.00 245.00 - 507.67 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -1554,6 +1684,66 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - 1.58 0.58 8.00 8.00 - 0.58 0.25 - vpgatherdd (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 4.00 4.00 - 0.58 0.25 - vpgatherqq (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 4.00 4.00 - 0.58 0.25 - vpgatherqd (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpmulld %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax){1to16}, %zmm17, %zmm19
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 cd6ed01accab..011547634ba2 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
@@ -130,6 +130,20 @@ vpermw (%rax), %zmm17, %zmm19 {k1}
vpermw %zmm16, %zmm17, %zmm19 {z}{k1}
vpermw (%rax), %zmm17, %zmm19 {z}{k1}
+vpmovsxbw %ymm16, %zmm19
+vpmovsxbw (%rax), %zmm19
+vpmovsxbw %ymm16, %zmm19 {k1}
+vpmovsxbw (%rax), %zmm19 {k1}
+vpmovsxbw %ymm16, %zmm19 {z}{k1}
+vpmovsxbw (%rax), %zmm19 {z}{k1}
+
+vpmovzxbw %ymm16, %zmm19
+vpmovzxbw (%rax), %zmm19
+vpmovzxbw %ymm16, %zmm19 {k1}
+vpmovzxbw (%rax), %zmm19 {k1}
+vpmovzxbw %ymm16, %zmm19 {z}{k1}
+vpmovzxbw (%rax), %zmm19 {z}{k1}
+
vpshufb %zmm16, %zmm17, %zmm19
vpshufb (%rax), %zmm17, %zmm19
vpshufb %zmm16, %zmm17, %zmm19 {k1}
@@ -344,6 +358,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %zmm17, %zmm19
# CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 {%k1}
@@ -437,7 +463,7 @@ vpmovw2m %zmm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 32.50 8.50 41.50 41.50 - 152.50 0.50 -
+# CHECK-NEXT: - - 32.50 8.50 44.50 44.50 - 164.50 0.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -551,6 +577,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1}
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 681a209d9c16..3de9603db612 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
@@ -221,6 +221,34 @@ vpermw (%rax), %ymm17, %ymm19 {k1}
vpermw %ymm16, %ymm17, %ymm19 {z}{k1}
vpermw (%rax), %ymm17, %ymm19 {z}{k1}
+vpmovsxbw %xmm16, %xmm19
+vpmovsxbw (%rax), %xmm19
+vpmovsxbw %xmm16, %xmm19 {k1}
+vpmovsxbw (%rax), %xmm19 {k1}
+vpmovsxbw %xmm16, %xmm19 {z}{k1}
+vpmovsxbw (%rax), %xmm19 {z}{k1}
+
+vpmovsxbw %xmm16, %ymm19
+vpmovsxbw (%rax), %ymm19
+vpmovsxbw %xmm16, %ymm19 {k1}
+vpmovsxbw (%rax), %ymm19 {k1}
+vpmovsxbw %xmm16, %ymm19 {z}{k1}
+vpmovsxbw (%rax), %ymm19 {z}{k1}
+
+vpmovzxbw %xmm16, %xmm19
+vpmovzxbw (%rax), %xmm19
+vpmovzxbw %xmm16, %xmm19 {k1}
+vpmovzxbw (%rax), %xmm19 {k1}
+vpmovzxbw %xmm16, %xmm19 {z}{k1}
+vpmovzxbw (%rax), %xmm19 {z}{k1}
+
+vpmovzxbw %xmm16, %ymm19
+vpmovzxbw (%rax), %ymm19
+vpmovzxbw %xmm16, %ymm19 {k1}
+vpmovzxbw (%rax), %ymm19 {k1}
+vpmovzxbw %xmm16, %ymm19 {z}{k1}
+vpmovzxbw (%rax), %ymm19 {z}{k1}
+
vpshufb %xmm16, %xmm17, %xmm19
vpshufb (%rax), %xmm17, %xmm19
vpshufb %xmm16, %xmm17, %xmm19 {k1}
@@ -604,6 +632,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 2 6 2.00 vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19
# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 {%k1}
@@ -775,7 +827,7 @@ vpmovw2m %ymm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 33.00 29.00 83.00 83.00 - 289.00 1.00 -
+# CHECK-NEXT: - - 33.00 29.00 89.00 89.00 - 313.00 1.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -963,6 +1015,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %xmm16, %xmm17, %xmm19 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
index 8fbbc1e8c88c..49aa3a4b624b 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
@@ -621,6 +621,146 @@ vpgatherdd (%rax,%xmm1,2), %xmm2 {k1}
vpgatherqq (%rax,%xmm1,2), %xmm2 {k1}
vpgatherqd (%rax,%xmm1,2), %xmm2 {k1}
+vpmovsxbd %xmm16, %xmm19
+vpmovsxbd (%rax), %xmm19
+vpmovsxbd %xmm16, %xmm19 {k1}
+vpmovsxbd (%rax), %xmm19 {k1}
+vpmovsxbd %xmm16, %xmm19 {z}{k1}
+vpmovsxbd (%rax), %xmm19 {z}{k1}
+
+vpmovsxbd %xmm16, %ymm19
+vpmovsxbd (%rax), %ymm19
+vpmovsxbd %xmm16, %ymm19 {k1}
+vpmovsxbd (%rax), %ymm19 {k1}
+vpmovsxbd %xmm16, %ymm19 {z}{k1}
+vpmovsxbd (%rax), %ymm19 {z}{k1}
+
+vpmovsxbq %xmm16, %xmm19
+vpmovsxbq (%rax), %xmm19
+vpmovsxbq %xmm16, %xmm19 {k1}
+vpmovsxbq (%rax), %xmm19 {k1}
+vpmovsxbq %xmm16, %xmm19 {z}{k1}
+vpmovsxbq (%rax), %xmm19 {z}{k1}
+
+vpmovsxbq %xmm16, %ymm19
+vpmovsxbq (%rax), %ymm19
+vpmovsxbq %xmm16, %ymm19 {k1}
+vpmovsxbq (%rax), %ymm19 {k1}
+vpmovsxbq %xmm16, %ymm19 {z}{k1}
+vpmovsxbq (%rax), %ymm19 {z}{k1}
+
+vpmovsxdq %xmm16, %xmm19
+vpmovsxdq (%rax), %xmm19
+vpmovsxdq %xmm16, %xmm19 {k1}
+vpmovsxdq (%rax), %xmm19 {k1}
+vpmovsxdq %xmm16, %xmm19 {z}{k1}
+vpmovsxdq (%rax), %xmm19 {z}{k1}
+
+vpmovsxdq %xmm16, %ymm19
+vpmovsxdq (%rax), %ymm19
+vpmovsxdq %xmm16, %ymm19 {k1}
+vpmovsxdq (%rax), %ymm19 {k1}
+vpmovsxdq %xmm16, %ymm19 {z}{k1}
+vpmovsxdq (%rax), %ymm19 {z}{k1}
+
+vpmovsxwd %xmm16, %xmm19
+vpmovsxwd (%rax), %xmm19
+vpmovsxwd %xmm16, %xmm19 {k1}
+vpmovsxwd (%rax), %xmm19 {k1}
+vpmovsxwd %xmm16, %xmm19 {z}{k1}
+vpmovsxwd (%rax), %xmm19 {z}{k1}
+
+vpmovsxwd %xmm16, %ymm19
+vpmovsxwd (%rax), %ymm19
+vpmovsxwd %xmm16, %ymm19 {k1}
+vpmovsxwd (%rax), %ymm19 {k1}
+vpmovsxwd %xmm16, %ymm19 {z}{k1}
+vpmovsxwd (%rax), %ymm19 {z}{k1}
+
+vpmovsxwq %xmm16, %xmm19
+vpmovsxwq (%rax), %xmm19
+vpmovsxwq %xmm16, %xmm19 {k1}
+vpmovsxwq (%rax), %xmm19 {k1}
+vpmovsxwq %xmm16, %xmm19 {z}{k1}
+vpmovsxwq (%rax), %xmm19 {z}{k1}
+
+vpmovsxwq %xmm16, %ymm19
+vpmovsxwq (%rax), %ymm19
+vpmovsxwq %xmm16, %ymm19 {k1}
+vpmovsxwq (%rax), %ymm19 {k1}
+vpmovsxwq %xmm16, %ymm19 {z}{k1}
+vpmovsxwq (%rax), %ymm19 {z}{k1}
+
+vpmovzxbd %xmm16, %xmm19
+vpmovzxbd (%rax), %xmm19
+vpmovzxbd %xmm16, %xmm19 {k1}
+vpmovzxbd (%rax), %xmm19 {k1}
+vpmovzxbd %xmm16, %xmm19 {z}{k1}
+vpmovzxbd (%rax), %xmm19 {z}{k1}
+
+vpmovzxbd %xmm16, %ymm19
+vpmovzxbd (%rax), %ymm19
+vpmovzxbd %xmm16, %ymm19 {k1}
+vpmovzxbd (%rax), %ymm19 {k1}
+vpmovzxbd %xmm16, %ymm19 {z}{k1}
+vpmovzxbd (%rax), %ymm19 {z}{k1}
+
+vpmovzxbq %xmm16, %xmm19
+vpmovzxbq (%rax), %xmm19
+vpmovzxbq %xmm16, %xmm19 {k1}
+vpmovzxbq (%rax), %xmm19 {k1}
+vpmovzxbq %xmm16, %xmm19 {z}{k1}
+vpmovzxbq (%rax), %xmm19 {z}{k1}
+
+vpmovzxbq %xmm16, %ymm19
+vpmovzxbq (%rax), %ymm19
+vpmovzxbq %xmm16, %ymm19 {k1}
+vpmovzxbq (%rax), %ymm19 {k1}
+vpmovzxbq %xmm16, %ymm19 {z}{k1}
+vpmovzxbq (%rax), %ymm19 {z}{k1}
+
+vpmovzxdq %xmm16, %xmm19
+vpmovzxdq (%rax), %xmm19
+vpmovzxdq %xmm16, %xmm19 {k1}
+vpmovzxdq (%rax), %xmm19 {k1}
+vpmovzxdq %xmm16, %xmm19 {z}{k1}
+vpmovzxdq (%rax), %xmm19 {z}{k1}
+
+vpmovzxdq %xmm16, %ymm19
+vpmovzxdq (%rax), %ymm19
+vpmovzxdq %xmm16, %ymm19 {k1}
+vpmovzxdq (%rax), %ymm19 {k1}
+vpmovzxdq %xmm16, %ymm19 {z}{k1}
+vpmovzxdq (%rax), %ymm19 {z}{k1}
+
+vpmovzxwd %xmm16, %xmm19
+vpmovzxwd (%rax), %xmm19
+vpmovzxwd %xmm16, %xmm19 {k1}
+vpmovzxwd (%rax), %xmm19 {k1}
+vpmovzxwd %xmm16, %xmm19 {z}{k1}
+vpmovzxwd (%rax), %xmm19 {z}{k1}
+
+vpmovzxwd %xmm16, %ymm19
+vpmovzxwd (%rax), %ymm19
+vpmovzxwd %xmm16, %ymm19 {k1}
+vpmovzxwd (%rax), %ymm19 {k1}
+vpmovzxwd %xmm16, %ymm19 {z}{k1}
+vpmovzxwd (%rax), %ymm19 {z}{k1}
+
+vpmovzxwq %xmm16, %xmm19
+vpmovzxwq (%rax), %xmm19
+vpmovzxwq %xmm16, %xmm19 {k1}
+vpmovzxwq (%rax), %xmm19 {k1}
+vpmovzxwq %xmm16, %xmm19 {z}{k1}
+vpmovzxwq (%rax), %xmm19 {z}{k1}
+
+vpmovzxwq %xmm16, %ymm19
+vpmovzxwq (%rax), %ymm19
+vpmovzxwq %xmm16, %ymm19 {k1}
+vpmovzxwq (%rax), %ymm19 {k1}
+vpmovzxwq %xmm16, %ymm19 {z}{k1}
+vpmovzxwq (%rax), %ymm19 {z}{k1}
+
vpmulld %xmm16, %xmm17, %xmm19
vpmulld (%rax), %xmm17, %xmm19
vpmulld (%rax){1to4}, %xmm17, %xmm19
@@ -1556,6 +1696,126 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 5 19 2.00 * vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 5 17 1.00 * vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 5 17 1.00 * vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax), %xmm17, %xmm19
# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19
@@ -1907,7 +2167,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 423.00 242.33 154.33 320.00 320.00 - 541.33 4.00 -
+# CHECK-NEXT: - 423.00 242.33 154.33 350.00 350.00 - 661.33 4.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2461,6 +2721,126 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 1.58 0.58 2.00 2.00 - 0.58 0.25 - vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 1.00 1.00 - 0.58 0.25 - vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: - - 1.58 0.58 1.00 1.00 - 0.58 0.25 - vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxwq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxdq (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 1.00 - - - - - - vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax){1to4}, %xmm17, %xmm19
More information about the llvm-commits
mailing list