summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2021-12-14 18:55:59 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2021-12-14 18:56:13 +0000
commit74d1fc742af0a5a766dbfa9f7a1a715301e05d3f (patch)
tree202b06523f94f6d8d7f01fc63c6961c97ba4217e
parent3926893439c419055b43df4f37db354cde3d02c2 (diff)
downloadllvm-74d1fc742af0a5a766dbfa9f7a1a715301e05d3f.tar.gz
[X86] Adjust some IceLake integer shuffle schedule classes (PR48110)
The IceLake scheduler model is still mainly a copy of the SkylakeServer model. This patch adjusts the integer shuffle classes to account for most instructions now working on Port 1 as well as Port 5. This is based off Agner + uops.info as well as the PR48110 report. Differential Revision: https://reviews.llvm.org/D115547
-rw-r--r--llvm/lib/Target/X86/X86SchedIceLake.td42
-rw-r--r--llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s202
-rw-r--r--llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s106
-rw-r--r--llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s418
-rw-r--r--llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s458
-rw-r--r--llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s98
-rw-r--r--llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s98
-rw-r--r--llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s10
8 files changed, 714 insertions, 718 deletions
diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td
index c49ebf4bf735..35723399100a 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -388,14 +388,14 @@ defm : ICXWriteResPair<WriteVecIMulZ, [ICXPort05], 5, [1], 1, 7>;
defm : ICXWriteResPair<WritePMULLD, [ICXPort01], 10, [2], 2, 6>; // Vector PMULLD.
defm : ICXWriteResPair<WritePMULLDY, [ICXPort01], 10, [2], 2, 7>;
defm : ICXWriteResPair<WritePMULLDZ, [ICXPort05], 10, [2], 2, 7>;
-defm : ICXWriteResPair<WriteShuffle, [ICXPort5], 1, [1], 1, 5>; // Vector shuffles.
-defm : ICXWriteResPair<WriteShuffleX, [ICXPort5], 1, [1], 1, 6>;
-defm : ICXWriteResPair<WriteShuffleY, [ICXPort5], 1, [1], 1, 7>;
-defm : ICXWriteResPair<WriteShuffleZ, [ICXPort5], 1, [1], 1, 7>;
-defm : ICXWriteResPair<WriteVarShuffle, [ICXPort5], 1, [1], 1, 5>; // Vector variable shuffles.
-defm : ICXWriteResPair<WriteVarShuffleX, [ICXPort5], 1, [1], 1, 6>;
-defm : ICXWriteResPair<WriteVarShuffleY, [ICXPort5], 1, [1], 1, 7>;
-defm : ICXWriteResPair<WriteVarShuffleZ, [ICXPort5], 1, [1], 1, 7>;
+defm : ICXWriteResPair<WriteShuffle, [ICXPort5], 1, [1], 1, 5>; // Vector shuffles.
+defm : ICXWriteResPair<WriteShuffleX, [ICXPort15], 1, [1], 1, 6>;
+defm : ICXWriteResPair<WriteShuffleY, [ICXPort15], 1, [1], 1, 7>;
+defm : ICXWriteResPair<WriteShuffleZ, [ICXPort5], 1, [1], 1, 7>;
+defm : ICXWriteResPair<WriteVarShuffle, [ICXPort5], 1, [1], 1, 5>; // Vector variable shuffles.
+defm : ICXWriteResPair<WriteVarShuffleX, [ICXPort15], 1, [1], 1, 6>;
+defm : ICXWriteResPair<WriteVarShuffleY, [ICXPort15], 1, [1], 1, 7>;
+defm : ICXWriteResPair<WriteVarShuffleZ, [ICXPort5], 1, [1], 1, 7>;
defm : ICXWriteResPair<WriteBlend, [ICXPort5], 1, [1], 1, 6>; // Vector blends.
defm : ICXWriteResPair<WriteBlendY,[ICXPort5], 1, [1], 1, 7>;
defm : ICXWriteResPair<WriteBlendZ,[ICXPort5], 1, [1], 1, 7>;
@@ -663,7 +663,10 @@ def ICXWriteResGroup3 : SchedWriteRes<[ICXPort5]> {
}
def: InstRW<[ICXWriteResGroup3], (instregex "COM(P?)_FST0r",
"KMOV(B|D|Q|W)kr",
- "UCOM_F(P?)r")>;
+ "UCOM_F(P?)r",
+ "VPBROADCAST(D|Q)rr",
+ "(V?)PALIGNR(Y|Z|Z128|Z256)?rri",
+ "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z128|Z256)?rr")>;
def ICXWriteResGroup4 : SchedWriteRes<[ICXPort6]> {
let Latency = 1;
@@ -1296,19 +1299,10 @@ def ICXWriteResGroup92 : SchedWriteRes<[ICXPort5,ICXPort23]> {
let ResourceCycles = [1,1];
}
def: InstRW<[ICXWriteResGroup92], (instregex "VMOVSDZrm(b?)",
- "VMOVSSZrm(b?)")>;
-
-def ICXWriteResGroup92a : SchedWriteRes<[ICXPort5,ICXPort23]> {
- let Latency = 6;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[ICXWriteResGroup92a], (instregex "(V?)PMOV(SX|ZX)BDrm",
- "(V?)PMOV(SX|ZX)BQrm",
- "(V?)PMOV(SX|ZX)BWrm",
- "(V?)PMOV(SX|ZX)DQrm",
- "(V?)PMOV(SX|ZX)WDrm",
- "(V?)PMOV(SX|ZX)WQrm")>;
+ "VMOVSSZrm(b?)",
+ "VPBROADCAST(B|W)(Z128)?rm",
+ "(V?)PALIGNR(Z128)?rmi",
+ "(V?)PACK(U|S)S(DW|WB)(Z128)?rm")>;
def ICXWriteResGroup93 : SchedWriteRes<[ICXPort5,ICXPort015]> {
let Latency = 7;
@@ -1546,7 +1540,9 @@ def ICXWriteResGroup119 : SchedWriteRes<[ICXPort5,ICXPort23]> {
}
def: InstRW<[ICXWriteResGroup119], (instregex "FCOM(P?)(32|64)m",
"VPBROADCASTB(Z|Z256)rm(b?)",
- "VPBROADCASTW(Z|Z256)rm(b?)")>;
+ "VPBROADCASTW(Z|Z256)rm(b?)",
+ "(V?)PALIGNR(Y|Z|Z256)rmi",
+ "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z256)rm")>;
def: InstRW<[ICXWriteResGroup119], (instrs VPBROADCASTBYrm,
VPBROADCASTWYrm,
VPMOVSXBDYrm,
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
index b711a9f65d62..1c0ec56d4cec 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
@@ -1506,30 +1506,30 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpminuw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 2 1.00 vpmovmskb %xmm0, %ecx
-# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovsxbd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovsxbq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovsxbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovsxdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovsxwd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovsxwq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovzxbd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovzxbq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovzxbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovzxdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovzxwd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm2
# CHECK-NEXT: 1 5 0.50 vpmuldq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 11 0.50 * vpmuldq (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vpmulhrsw %xmm0, %xmm1, %xmm2
@@ -1548,14 +1548,14 @@ vzeroupper
# CHECK-NEXT: 2 7 0.50 * vpor (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vpsadbw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 9 1.00 * vpsadbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpshufb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpshufd $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpshuflw $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 vpsignb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsignb (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsignd %xmm0, %xmm1, %xmm2
@@ -1565,7 +1565,7 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: 2 2 1.00 vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: 2 2 1.00 vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsllq (%rax), %xmm1, %xmm2
@@ -1581,7 +1581,7 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: 2 2 1.00 vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: 2 2 1.00 vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsrlq (%rax), %xmm1, %xmm2
@@ -1608,22 +1608,22 @@ vzeroupper
# CHECK-NEXT: 3 9 1.00 * vptest (%rax), %xmm1
# CHECK-NEXT: 2 3 1.00 vptest %ymm0, %ymm1
# CHECK-NEXT: 3 10 1.00 * vptest (%rax), %ymm1
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpckhqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpcklqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.33 vpxor %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpxor (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vrcpps %xmm0, %xmm2
@@ -1738,7 +1738,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 123.00 317.42 196.42 173.17 173.17 34.00 337.92 6.25 12.67 - -
+# CHECK-NEXT: - 123.00 317.42 221.42 173.17 173.17 34.00 312.92 6.25 12.67 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2218,30 +2218,30 @@ vzeroupper
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovmskb %xmm0, %ecx
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwq (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmuldq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmuldq (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhrsw %xmm0, %xmm1, %xmm2
@@ -2260,14 +2260,14 @@ vzeroupper
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpor (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsadbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $1, (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsignb (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignd %xmm0, %xmm1, %xmm2
@@ -2277,7 +2277,7 @@ vzeroupper
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllq (%rax), %xmm1, %xmm2
@@ -2293,7 +2293,7 @@ vzeroupper
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlq (%rax), %xmm1, %xmm2
@@ -2320,22 +2320,22 @@ vzeroupper
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - - - vptest (%rax), %xmm1
# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vptest %ymm0, %ymm1
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - - - vptest (%rax), %ymm1
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpxor %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpxor (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 1.00 - - - - - - - - - vrcpps %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
index 5deaadc3f52a..85582e7e8bef 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
@@ -667,14 +667,14 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpsadbw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 10 1.00 * vpsadbw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpshufb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpshufd $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpshufd $1, (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vpshufhw $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpshufhw $1, (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vpshuflw $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpshuflw $1, (%rax), %ymm2
+# CHECK-NEXT: 1 1 0.50 vpshufb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpshufd $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpshufd $1, (%rax), %ymm2
+# CHECK-NEXT: 1 1 0.50 vpshufhw $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpshufhw $1, (%rax), %ymm2
+# CHECK-NEXT: 1 1 0.50 vpshuflw $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpshuflw $1, (%rax), %ymm2
# CHECK-NEXT: 1 1 0.50 vpsignb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpsignb (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpsignd %ymm0, %ymm1, %ymm2
@@ -684,7 +684,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: 2 4 1.00 vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpslld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpslldq $1, %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpslldq $1, %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: 2 4 1.00 vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpsllq (%rax), %ymm1, %ymm2
@@ -712,7 +712,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: 2 4 1.00 vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpsrld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: 2 4 1.00 vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpsrlq (%rax), %ymm1, %ymm2
@@ -743,22 +743,22 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.33 vpsubw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhqdq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpckhqdq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpcklqdq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpcklqdq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.33 vpxor %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpxor (%rax), %ymm1, %ymm2
@@ -778,7 +778,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 110.33 89.33 99.67 99.67 1.00 164.33 - 1.67 - -
+# CHECK-NEXT: - - 110.33 102.33 99.67 99.67 1.00 151.33 - 1.67 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -989,14 +989,14 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsadbw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $1, (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $1, (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $1, (%rax), %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $1, (%rax), %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $1, (%rax), %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $1, (%rax), %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsignb (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignd %ymm0, %ymm1, %ymm2
@@ -1006,7 +1006,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpslld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllq (%rax), %ymm1, %ymm2
@@ -1034,7 +1034,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlq (%rax), %ymm1, %ymm2
@@ -1065,21 +1065,21 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhqdq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhqdq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklqdq %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklqdq (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhqdq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhqdq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklqdq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklqdq (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpxor %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpxor (%rax), %ymm1, %ymm2
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 e013b4a20bed..d8bb3edc6ed7 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
@@ -684,74 +684,74 @@ 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 1 1.00 vpmovsxbw %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovzxbw %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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}
-# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19
-# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpshuflw $0, (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpshuflw $0, (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpshuflw $0, (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %ymm16, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %ymm19
-# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %ymm16, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %ymm16, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpslldq $1, (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpslldq $1, %ymm16, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpslldq $1, (%rax), %ymm19
-# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpsrldq $1, (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %ymm16, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpsrldq $1, (%rax), %ymm19
+# 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}
+# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpshufhw $0, (%rax), %ymm19
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpshufhw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpshufhw $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshuflw $0, (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshuflw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshuflw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpshuflw $0, (%rax), %ymm19
+# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpshuflw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpshuflw $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpslldq $1, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpslldq $1, (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpslldq $1, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpslldq $1, (%rax), %ymm19
+# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpsrldq $1, (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpsrldq $1, (%rax), %ymm19
# CHECK-NEXT: 1 1 0.33 vpsubb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %xmm17, %xmm19
# CHECK-NEXT: 1 1 0.33 vpsubb %xmm16, %xmm17, %xmm19 {%k1}
@@ -808,54 +808,54 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: 2 11 1.00 * vptestnmw (%rax), %ymm1, %k2
# CHECK-NEXT: 1 4 1.00 vptestnmw %ymm0, %ymm1, %k2 {%k3}
# CHECK-NEXT: 2 11 1.00 * vptestnmw (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %xmm0
# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %xmm0
# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %ymm0
@@ -881,7 +881,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 95.00 95.00 - 337.00 1.00 - - -
+# CHECK-NEXT: - - 33.00 81.00 95.00 95.00 - 285.00 1.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1093,74 +1093,74 @@ 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: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbw (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbw (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm17, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %ymm16, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %ymm16, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpslldq $1, (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %ymm16, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpslldq $1, (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsrldq $1, (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %ymm16, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsrldq $1, (%rax), %ymm19
+# 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}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpslldq $1, (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %ymm16, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpslldq $1, (%rax), %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpsrldq $1, (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %ymm16, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpsrldq $1, (%rax), %ymm19
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %xmm16, %xmm17, %xmm19 {%k1}
@@ -1217,54 +1217,54 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmw (%rax), %ymm1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - - - vptestnmw %ymm0, %ymm1, %k2 {%k3}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmw (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm17, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm17, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm17, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm17, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %xmm0
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %xmm0
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %ymm0
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 31b934ccc6c8..a3ecb251ef4c 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
@@ -1879,120 +1879,120 @@ 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 1 1.00 vpmovsxbd %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovsxbq %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovsxdq %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovsxwd %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovsxwq %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovzxbd %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovzxbq %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovzxdq %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovzxwd %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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 1 1.00 vpmovzxwq %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19
-# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * 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}
@@ -2017,24 +2017,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 2 10 1.00 vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vpsubd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19
@@ -2119,42 +2119,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 4 1.00 vptestnmq %ymm0, %ymm1, %k2 {%k3}
# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax), %ymm1, %k2 {%k3}
# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax){1to4}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19
# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
@@ -2352,7 +2352,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 257.33 169.33 372.50 372.50 - 715.33 4.00 - - -
+# CHECK-NEXT: - 423.00 257.33 226.33 372.50 372.50 - 658.33 4.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2990,120 +2990,120 @@ 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: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbd (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbq (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxdq (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwd (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwq (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbd (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbq (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxdq (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxdq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwd (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwq (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - 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}
@@ -3128,24 +3128,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 1.00 1.00 - - - - - - - - vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vpmulld (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to4}, %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %xmm16, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %xmm16, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %ymm16, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to8}, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %ymm16, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %ymm16, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubd (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubd (%rax){1to4}, %xmm17, %xmm19
@@ -3230,42 +3230,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vptestnmq %ymm0, %ymm1, %k2 {%k3}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmq (%rax), %ymm1, %k2 {%k3}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmq (%rax){1to4}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm17, %ymm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vshuff32x4 $0, (%rax), %ymm17, %ymm19
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
index f3499dd58f08..a198b7c22cb0 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
@@ -588,16 +588,16 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 2 7 0.50 * por (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 psadbw %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * psadbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * pshufd $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * pshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * pshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pshufd $1, (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pshuflw $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pslld $1, %xmm2
# CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * pslld (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2
+# CHECK-NEXT: 1 1 0.50 pslldq $1, %xmm2
# CHECK-NEXT: 1 1 0.50 psllq $1, %xmm2
# CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psllq (%rax), %xmm2
@@ -613,7 +613,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psrld $1, %xmm2
# CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psrld (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2
+# CHECK-NEXT: 1 1 0.50 psrldq $1, %xmm2
# CHECK-NEXT: 1 1 0.50 psrlq $1, %xmm2
# CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psrlq (%rax), %xmm2
@@ -638,22 +638,22 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 2 7 0.50 * psubusw (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 psubw %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psubw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpckhbw %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpckhbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpckhdq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpckhdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpckhqdq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpckhqdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpckhwd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpckhwd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpcklbw %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpcklbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpckldq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpckldq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpcklqdq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpcklqdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 punpcklwd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * punpcklwd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpckhbw %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpckhbw (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpckhdq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpckhdq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpckhqdq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpckhqdq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpckhwd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpckhwd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpcklbw %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpcklbw (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpckldq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpckldq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpcklqdq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpcklqdq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 punpcklwd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * punpcklwd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 pxor %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * pxor (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 shufpd $1, %xmm0, %xmm2
@@ -691,7 +691,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 38.00 103.58 82.58 63.50 63.50 14.00 97.58 2.25 5.00 - -
+# CHECK-NEXT: - 38.00 103.58 94.58 63.50 63.50 14.00 85.58 2.25 5.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -876,16 +876,16 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - por (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - psadbw %xmm0, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - psadbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshuflw $1, (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pslld $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - pslld %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pslld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pslldq $1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pslldq $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psllq $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psllq %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psllq (%rax), %xmm2
@@ -901,7 +901,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrld $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrld %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - psrldq $1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - psrldq $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrlq $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrlq %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrlq (%rax), %xmm2
@@ -926,22 +926,22 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psubusw (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - psubw %xmm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - psubw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhqdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhqdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpcklbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpcklbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckldq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckldq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpcklqdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpcklqdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - punpcklwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpcklwd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhbw %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhbw (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhdq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhdq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhqdq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhqdq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhwd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhwd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpcklbw %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpcklbw (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckldq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckldq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpcklqdq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpcklqdq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpcklwd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpcklwd (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - pxor %xmm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - pxor (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - shufpd $1, %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
index 791b3be76fa3..eca84f3dc58c 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
@@ -213,30 +213,30 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: 2 7 0.50 * pminud (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pminuw %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * pminuw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovsxbd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovsxbq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovsxbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovsxdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovsxwd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovsxwq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovzxbd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovzxbq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovzxbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovzxdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovzxwd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: 2 6 1.00 * pmovzxwq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovsxbd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovsxbq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovsxbw (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovsxdq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovsxwd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovsxwq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovzxbd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovzxbq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovzxbw (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovzxdq (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovzxwd (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pmovzxwq (%rax), %xmm2
# CHECK-NEXT: 1 5 0.50 pmuldq %xmm0, %xmm2
# CHECK-NEXT: 2 11 0.50 * pmuldq (%rax), %xmm2
# CHECK-NEXT: 2 10 1.00 pmulld %xmm0, %xmm2
@@ -268,7 +268,7 @@ roundss $1, (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 36.67 28.67 23.67 23.67 5.00 66.67 - 1.67 - -
+# CHECK-NEXT: - - 36.67 40.67 23.67 23.67 5.00 54.67 - 1.67 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -330,30 +330,30 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pminud (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pminuw %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pminuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxwq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxwq (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pmuldq %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pmuldq (%rax), %xmm2
# CHECK-NEXT: - - 1.00 1.00 - - - - - - - - pmulld %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s
index ae2109e9af76..3a6668cedb60 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s
@@ -156,8 +156,8 @@ psignw (%rax), %xmm2
# CHECK-NEXT: 2 11 0.50 * pmulhrsw (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 pshufb %mm0, %mm2
# CHECK-NEXT: 2 6 1.00 * pshufb (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 pshufb %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * pshufb (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 pshufb %xmm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * pshufb (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psignb %mm0, %mm2
# CHECK-NEXT: 2 6 0.50 * psignb (%rax), %mm2
# CHECK-NEXT: 1 1 0.50 psignb %xmm0, %xmm2
@@ -187,7 +187,7 @@ psignw (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 30.67 12.67 16.00 16.00 - 68.67 - - - -
+# CHECK-NEXT: - - 30.67 13.67 16.00 16.00 - 67.67 - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -241,8 +241,8 @@ psignw (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pmulhrsw (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - pshufb %mm0, %mm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufb (%rax), %mm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - pshufb %xmm0, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufb (%rax), %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshufb %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshufb (%rax), %xmm2
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - psignb %mm0, %mm2
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - psignb (%rax), %mm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psignb %xmm0, %xmm2