[llvm] 20c5968 - [X86] Increase latency of port5 masked compares and kshift/kadd/kunpck instructions in SKX scheduler model
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 16 17:12:27 PST 2020
Author: Craig Topper
Date: 2020-02-16T16:59:37-08:00
New Revision: 20c5968e0953d978be4d9d1062801e8758c393b5
URL: https://github.com/llvm/llvm-project/commit/20c5968e0953d978be4d9d1062801e8758c393b5
DIFF: https://github.com/llvm/llvm-project/commit/20c5968e0953d978be4d9d1062801e8758c393b5.diff
LOG: [X86] Increase latency of port5 masked compares and kshift/kadd/kunpck instructions in SKX scheduler model
Uops.info shows these as 4 cycle latency.
Added:
Modified:
llvm/lib/Target/X86/X86SchedSkylakeServer.td
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86SchedSkylakeServer.td b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
index 55893945638e..a58a67c8efc6 100644
--- a/llvm/lib/Target/X86/X86SchedSkylakeServer.td
+++ b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
@@ -817,19 +817,26 @@ def SKXWriteResGroup32 : SchedWriteRes<[SKXPort5]> {
}
def: InstRW<[SKXWriteResGroup32], (instrs VPSADBWZrr)>; // TODO: 512-bit ops require ports 0/1 to be joined.
def: InstRW<[SKXWriteResGroup32], (instregex "(ADD|SUB|SUBR)_(FPrST0|FST0r|FrST0)",
- "KADD(B|D|Q|W)rr",
+ "VALIGND(Z|Z128|Z256)rri",
+ "VALIGNQ(Z|Z128|Z256)rri",
+ "VDBPSADBWZrri", // TODO: 512-bit ops require ports 0/1 to be joined.
+ "VPBROADCAST(B|W)rr",
+ "VP(MAX|MIN)(S|U)Q(Z|Z128|Z256)rr")>;
+
+def SKXWriteResGroup33 : SchedWriteRes<[SKXPort5]> {
+ let Latency = 4;
+ let NumMicroOps = 1;
+ let ResourceCycles = [1];
+}
+def: InstRW<[SKXWriteResGroup33], (instregex "KADD(B|D|Q|W)rr",
"KSHIFTL(B|D|Q|W)ri",
"KSHIFTR(B|D|Q|W)ri",
"KUNPCK(BW|DQ|WD)rr",
- "VALIGND(Z|Z128|Z256)rri",
- "VALIGNQ(Z|Z128|Z256)rri",
"VCMPPD(Z|Z128|Z256)rri",
"VCMPPS(Z|Z128|Z256)rri",
"VCMP(SD|SS)Zrr",
- "VDBPSADBWZrri", // TODO: 512-bit ops require ports 0/1 to be joined.
"VFPCLASS(PD|PS)(Z|Z128|Z256)rr",
"VFPCLASS(SD|SS)Zrr",
- "VPBROADCAST(B|W)rr",
"VPCMPB(Z|Z128|Z256)rri",
"VPCMPD(Z|Z128|Z256)rri",
"VPCMPEQ(B|D|Q|W)(Z|Z128|Z256)rr",
@@ -837,7 +844,6 @@ def: InstRW<[SKXWriteResGroup32], (instregex "(ADD|SUB|SUBR)_(FPrST0|FST0r|FrST0
"VPCMPQ(Z|Z128|Z256)rri",
"VPCMPU(B|D|Q|W)(Z|Z128|Z256)rri",
"VPCMPW(Z|Z128|Z256)rri",
- "VP(MAX|MIN)(S|U)Q(Z|Z128|Z256)rr",
"VPTEST(N?)M(B|D|Q|W)(Z|Z128|Z256)rr")>;
def SKXWriteResGroup34 : SchedWriteRes<[SKXPort0,SKXPort0156]> {
@@ -1519,7 +1525,6 @@ def SKXWriteResGroup119 : SchedWriteRes<[SKXPort5,SKXPort23]> {
let ResourceCycles = [1,1];
}
def: InstRW<[SKXWriteResGroup119], (instregex "FCOM(P?)(32|64)m",
- "VFPCLASSSDZrm(b?)",
"VPBROADCASTB(Z|Z256)rm(b?)",
"VPBROADCASTW(Z|Z256)rm(b?)")>;
def: InstRW<[SKXWriteResGroup119], (instrs VPBROADCASTBYrm,
@@ -1670,17 +1675,9 @@ def: InstRW<[SKXWriteResGroup136], (instrs VPMOVSXBWYrm,
VPMOVSXWDYrm,
VPMOVZXWDYrm)>;
def: InstRW<[SKXWriteResGroup136], (instregex "VALIGN(D|Q)Z128rm(b?)i",
- "VCMP(PD|PS)Z128rm(b?)i",
- "VCMP(SD|SS)Zrm",
+ "VFPCLASSSDZrm(b?)",
"VFPCLASSSSZrm(b?)",
- "VPCMPBZ128rmi(b?)",
- "VPCMPDZ128rmi(b?)",
- "VPCMPEQ(B|D|Q|W)Z128rm(b?)",
- "VPCMPGT(B|D|Q|W)Z128rm(b?)",
"(V?)PCMPGTQrm",
- "VPCMPQZ128rmi(b?)",
- "VPCMPU(B|D|Q|W)Z128rmi(b?)",
- "VPCMPWZ128rmi(b?)",
"VPERMI2D128rm(b?)",
"VPERMI2PD128rm(b?)",
"VPERMI2PS128rm(b?)",
@@ -1704,15 +1701,32 @@ def: InstRW<[SKXWriteResGroup136], (instregex "VALIGN(D|Q)Z128rm(b?)i",
"VPMOVZXBWZ128rm(b?)",
"VPMOVZXDQZ128rm(b?)",
"VPMOVZXWDZ128rm(b?)",
- "VPMOVZXWQZ128rm(b?)",
- "VPTESTMBZ128rm(b?)",
- "VPTESTMDZ128rm(b?)",
- "VPTESTMQZ128rm(b?)",
- "VPTESTMWZ128rm(b?)",
- "VPTESTNMBZ128rm(b?)",
- "VPTESTNMDZ128rm(b?)",
- "VPTESTNMQZ128rm(b?)",
- "VPTESTNMWZ128rm(b?)")>;
+ "VPMOVZXWQZ128rm(b?)")>;
+
+def SKXWriteResGroup136_2 : SchedWriteRes<[SKXPort5,SKXPort23]> {
+ let Latency = 10;
+ let NumMicroOps = 2;
+ let ResourceCycles = [1,1];
+}
+def: InstRW<[SKXWriteResGroup136_2], (instregex "VCMP(PD|PS)Z128rm(b?)i",
+ "VCMP(SD|SS)Zrm",
+ "VFPCLASSPDZ128rm(b?)",
+ "VFPCLASSPSZ128rm(b?)",
+ "VPCMPBZ128rmi(b?)",
+ "VPCMPDZ128rmi(b?)",
+ "VPCMPEQ(B|D|Q|W)Z128rm(b?)",
+ "VPCMPGT(B|D|Q|W)Z128rm(b?)",
+ "VPCMPQZ128rmi(b?)",
+ "VPCMPU(B|D|Q|W)Z128rmi(b?)",
+ "VPCMPWZ128rmi(b?)",
+ "VPTESTMBZ128rm(b?)",
+ "VPTESTMDZ128rm(b?)",
+ "VPTESTMQZ128rm(b?)",
+ "VPTESTMWZ128rm(b?)",
+ "VPTESTNMBZ128rm(b?)",
+ "VPTESTNMDZ128rm(b?)",
+ "VPTESTNMQZ128rm(b?)",
+ "VPTESTNMWZ128rm(b?)")>;
def SKXWriteResGroup137 : SchedWriteRes<[SKXPort23,SKXPort015]> {
let Latency = 9;
@@ -1748,30 +1762,38 @@ def: InstRW<[SKXWriteResGroup148], (instregex "(ADD|SUB|SUBR)_F(32|64)m",
"ILD_F(16|32|64)m",
"VALIGND(Z|Z256)rm(b?)i",
"VALIGNQ(Z|Z256)rm(b?)i",
- "VCMPPD(Z|Z256)rm(b?)i",
- "VCMPPS(Z|Z256)rm(b?)i",
- "VPCMPB(Z|Z256)rmi(b?)",
- "VPCMPD(Z|Z256)rmi(b?)",
- "VPCMPEQB(Z|Z256)rm(b?)",
- "VPCMPEQD(Z|Z256)rm(b?)",
- "VPCMPEQQ(Z|Z256)rm(b?)",
- "VPCMPEQW(Z|Z256)rm(b?)",
- "VPCMPGTB(Z|Z256)rm(b?)",
- "VPCMPGTD(Z|Z256)rm(b?)",
- "VPCMPGTQ(Z|Z256)rm(b?)",
- "VPCMPGTW(Z|Z256)rm(b?)",
- "VPCMPQ(Z|Z256)rmi(b?)",
- "VPCMPU(B|D|Q|W)Z256rmi(b?)",
- "VPCMPU(B|D|Q|W)Zrmi(b?)",
- "VPCMPW(Z|Z256)rmi(b?)",
"VPMAXSQ(Z|Z256)rm(b?)",
"VPMAXUQ(Z|Z256)rm(b?)",
"VPMINSQ(Z|Z256)rm(b?)",
- "VPMINUQ(Z|Z256)rm(b?)",
- "VPTESTM(B|D|Q|W)Z256rm(b?)",
- "VPTESTM(B|D|Q|W)Zrm(b?)",
- "VPTESTNM(B|D|Q|W)Z256rm(b?)",
- "VPTESTNM(B|D|Q|W)Zrm(b?)")>;
+ "VPMINUQ(Z|Z256)rm(b?)")>;
+
+def SKXWriteResGroup148_2 : SchedWriteRes<[SKXPort5,SKXPort23]> {
+ let Latency = 11;
+ let NumMicroOps = 2;
+ let ResourceCycles = [1,1];
+}
+def: InstRW<[SKXWriteResGroup148_2], (instregex "VCMPPD(Z|Z256)rm(b?)i",
+ "VCMPPS(Z|Z256)rm(b?)i",
+ "VFPCLASSPD(Z|Z256)rm(b?)",
+ "VFPCLASSPS(Z|Z256)rm(b?)",
+ "VPCMPB(Z|Z256)rmi(b?)",
+ "VPCMPD(Z|Z256)rmi(b?)",
+ "VPCMPEQB(Z|Z256)rm(b?)",
+ "VPCMPEQD(Z|Z256)rm(b?)",
+ "VPCMPEQQ(Z|Z256)rm(b?)",
+ "VPCMPEQW(Z|Z256)rm(b?)",
+ "VPCMPGTB(Z|Z256)rm(b?)",
+ "VPCMPGTD(Z|Z256)rm(b?)",
+ "VPCMPGTQ(Z|Z256)rm(b?)",
+ "VPCMPGTW(Z|Z256)rm(b?)",
+ "VPCMPQ(Z|Z256)rmi(b?)",
+ "VPCMPU(B|D|Q|W)Z256rmi(b?)",
+ "VPCMPU(B|D|Q|W)Zrmi(b?)",
+ "VPCMPW(Z|Z256)rmi(b?)",
+ "VPTESTM(B|D|Q|W)Z256rm(b?)",
+ "VPTESTM(B|D|Q|W)Zrm(b?)",
+ "VPTESTNM(B|D|Q|W)Z256rm(b?)",
+ "VPTESTNM(B|D|Q|W)Zrm(b?)")>;
def SKXWriteResGroup149 : SchedWriteRes<[SKXPort23,SKXPort015]> {
let Latency = 10;
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
index c18ed71b15a5..db6b849ed716 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
@@ -662,9 +662,9 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 1 1.00 korw %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kxnorw %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kxorw %k0, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftlw $2, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftrw $2, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kunpckbw %k0, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftlw $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftrw $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kunpckbw %k0, %k1, %k2
# CHECK-NEXT: 1 4 0.50 vaddpd %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 11 0.50 * vaddpd (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 11 0.50 * vaddpd (%rax){1to8}, %zmm17, %zmm19
@@ -683,26 +683,26 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 4 0.50 vaddps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vaddps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vaddps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax){1to8}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax){1to8}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax){1to16}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax){1to16}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vcmpeqsd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vcmpeqsd (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqsd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vcmpeqsd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vcmpeqss %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vcmpeqss (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqss %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vcmpeqss (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqpd %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqpd %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqps %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqps %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqsd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vcmpeqsd (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqsd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vcmpeqsd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqss %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vcmpeqss (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqss %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vcmpeqss (%rax), %xmm1, %k2 {%k3}
# CHECK-NEXT: 1 2 1.00 vcomiss %xmm16, %xmm17
# CHECK-NEXT: 2 7 1.00 * vcomiss (%rax), %xmm17
# CHECK-NEXT: 2 7 1.00 vcvtdq2pd %ymm16, %zmm19
@@ -853,54 +853,54 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 1 0.33 vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtd %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax){1to16}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtd %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax){1to16}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtq %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax){1to8}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtq %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax){1to8}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequd %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax){1to16}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequd %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax){1to16}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequq %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax){1to8}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequq %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtd %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtd %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtq %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtq %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequd %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequd %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequq %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequq %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax){1to8}, %zmm1, %k2 {%k3}
# CHECK-NEXT: 5 21 4.00 * vpgatherdq (%rax,%ymm1,2), %zmm2 {%k1}
# CHECK-NEXT: 5 25 8.00 * vpgatherdd (%rax,%zmm1,2), %zmm2 {%k1}
# CHECK-NEXT: 5 21 4.00 * vpgatherqq (%rax,%zmm1,2), %zmm2 {%k1}
@@ -1151,30 +1151,30 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 1 0.33 vpsubq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vptestmd %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax){1to16}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmd %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax){1to16}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmq %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax){1to8}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmq %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax){1to8}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmd %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax){1to16}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmd %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax){1to16}, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmq %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax), %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax){1to8}, %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmq %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmd %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmd %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmq %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmq %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmd %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmd %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmq %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax), %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmq %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax){1to8}, %zmm1, %k2 {%k3}
# CHECK-NEXT: 1 4 0.50 vsubpd %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 11 0.50 * vsubpd (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 11 0.50 * vsubpd (%rax){1to8}, %zmm17, %zmm19
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
index 048f0767a27f..91d31ddfa1de 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
@@ -187,8 +187,8 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 kaddd %k0, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kaddq %k0, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kaddd %k0, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kaddq %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kandd %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kandq %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kandnd %k0, %k1, %k2
@@ -199,12 +199,12 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 1 1.00 kxnorq %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kxord %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kxorq %k0, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftld $2, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftlq $2, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftrd $2, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftrq $2, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kunpckdq %k0, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kunpckwd %k0, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftld $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftlq $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftrd $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftrq $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kunpckdq %k0, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kunpckwd %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 vpabsb %zmm16, %zmm19
# CHECK-NEXT: 2 8 1.00 * vpabsb (%rax), %zmm19
# CHECK-NEXT: 1 1 1.00 vpabsb %zmm16, %zmm19 {%k1}
@@ -229,38 +229,38 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpaddw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtb %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtb (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtb %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtb (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtw %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtw (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtw %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtw (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequb %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequb (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequb %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequb (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequw %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequw (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequw %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequw (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtb %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtb (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtb %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtb (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtw %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtw (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtw %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtw (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequb %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequb (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequb %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequb (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequw %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequw (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequw %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequw (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2 {%k3}
# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1}
@@ -297,22 +297,22 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpsubw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vptestmb %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmb (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmb %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmb (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmw %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmw (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmw %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmw (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmb %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmb (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmb %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmb (%rax), %zmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmw %zmm0, %zmm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmw (%rax), %zmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmw %zmm0, %zmm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmw (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmb %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmb (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmb %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmb (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmw %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmw (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmw %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmw (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmb %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmb (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmb %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmb (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmw %zmm0, %zmm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmw (%rax), %zmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmw %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmw (%rax), %zmm1, %k2 {%k3}
# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %zmm17, %zmm19
# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
index be35aae60ba3..ec914fb13663 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
@@ -360,70 +360,70 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpaddw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqb (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqb (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqb (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqb (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqb %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqw (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqw (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtb %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtb (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtb %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtb (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtb %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtb (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtb %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtb (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtw %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtw (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtw %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtw (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtw %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtw (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtw %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtw (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequb %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpequb (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequb %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpequb (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequb %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequb (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequb %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequb (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequw %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpequw (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequw %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpequw (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequw %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequw (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequw %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequw (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqw (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqw (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqw %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqb %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtb %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtb (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtb %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtb (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtb %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtb (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtb %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtb (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtw %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtw (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtw %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtw (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtw %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtw (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtw %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtw (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequb %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpequb (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequb %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpequb (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequb %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequb (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequb %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequb (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequw %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpequw (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequw %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpequw (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequw %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequw (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequw %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequw (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqw (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqw %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %ymm1, %k2 {%k3}
# CHECK-NEXT: 2 6 2.00 vpermw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 3 12 2.00 * vpermw (%rax), %xmm17, %xmm19
# CHECK-NEXT: 2 6 2.00 vpermw %xmm16, %xmm17, %xmm19 {%k1}
@@ -484,38 +484,38 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpsubw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vptestmb %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestmb (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmb %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestmb (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmb %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmb (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmb %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmb (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmw %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestmw (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmw %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestmw (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmw %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmw (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmw %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmw (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmb %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestnmb (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmb %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestnmb (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmb %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmb (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmb %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmb (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmw %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestnmw (%rax), %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmw %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestnmw (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmw %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmw (%rax), %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmw %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmw (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmb %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestmb (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmb %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestmb (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmb %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmb (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmb %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmb (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmw %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestmw (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmw %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestmw (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmw %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmw (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmw %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmw (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmb %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestnmb (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmb %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestnmb (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmb %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmb (%rax), %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmb %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmb (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmw %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestnmw (%rax), %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmw %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestnmw (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmw %ymm0, %ymm1, %k2
+# 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}
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s
index 8bbc0777e0cb..95f49ffe4496 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s
@@ -151,15 +151,15 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 kaddb %k0, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kaddw %k0, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kaddb %k0, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kaddw %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kandb %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kandnb %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 korb %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kxnorb %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kxorb %k0, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftlb $2, %k1, %k2
-# CHECK-NEXT: 1 3 1.00 kshiftrb $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftlb $2, %k1, %k2
+# CHECK-NEXT: 1 4 1.00 kshiftrb $2, %k1, %k2
# CHECK-NEXT: 1 1 0.50 vandnpd %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax){1to8}, %zmm17, %zmm19
@@ -232,25 +232,25 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 1 0.50 vorps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %zmm16, %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclasspdz $171, (%rax), %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclasspd $171, (%rax){1to8}, %k1
-# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %zmm16, %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclasspdz $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclasspd $171, (%rax){1to8}, %k1 {%k2}
-# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %zmm16, %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclasspsz $171, (%rax), %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclassps $171, (%rax){1to16}, %k1
-# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %zmm16, %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclasspsz $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclassps $171, (%rax){1to16}, %k1 {%k2}
-# CHECK-NEXT: 1 3 1.00 vfpclasssd $171, %xmm16, %k1
-# CHECK-NEXT: 2 8 1.00 * vfpclasssd $171, (%rax), %k1
-# CHECK-NEXT: 1 3 1.00 vfpclasssd $171, %xmm16, %k1 {%k2}
-# CHECK-NEXT: 2 8 1.00 * vfpclasssd $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: 1 3 1.00 vfpclassss $171, %xmm16, %k1
+# CHECK-NEXT: 1 4 1.00 vfpclasspd $171, %zmm16, %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclasspdz $171, (%rax), %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclasspd $171, (%rax){1to8}, %k1
+# CHECK-NEXT: 1 4 1.00 vfpclasspd $171, %zmm16, %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclasspdz $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclasspd $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclassps $171, %zmm16, %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclasspsz $171, (%rax), %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclassps $171, (%rax){1to16}, %k1
+# CHECK-NEXT: 1 4 1.00 vfpclassps $171, %zmm16, %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclasspsz $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclassps $171, (%rax){1to16}, %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclasssd $171, %xmm16, %k1
+# CHECK-NEXT: 2 9 1.00 * vfpclasssd $171, (%rax), %k1
+# CHECK-NEXT: 1 4 1.00 vfpclasssd $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT: 2 9 1.00 * vfpclasssd $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclassss $171, %xmm16, %k1
# CHECK-NEXT: 2 9 1.00 * vfpclassss $171, (%rax), %k1
-# CHECK-NEXT: 1 3 1.00 vfpclassss $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclassss $171, %xmm16, %k1 {%k2}
# CHECK-NEXT: 2 9 1.00 * vfpclassss $171, (%rax), %k1 {%k2}
# CHECK-NEXT: 3 12 1.50 vpmullq %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 4 19 1.00 * vpmullq (%rax), %zmm17, %zmm19
@@ -291,7 +291,7 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 59.50 7.00 37.50 37.50 - 77.50 - -
+# CHECK-NEXT: - - 55.50 7.00 37.50 37.50 - 81.50 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -377,17 +377,17 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasspd $171, %zmm16, %k1
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclasspdz $171, (%rax), %k1
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclasspd $171, (%rax){1to8}, %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspdz $171, (%rax), %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspd $171, (%rax){1to8}, %k1
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasspd $171, %zmm16, %k1 {%k2}
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclasspdz $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclasspd $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspdz $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspd $171, (%rax){1to8}, %k1 {%k2}
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclassps $171, %zmm16, %k1
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclasspsz $171, (%rax), %k1
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclassps $171, (%rax){1to16}, %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspsz $171, (%rax), %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclassps $171, (%rax){1to16}, %k1
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclassps $171, %zmm16, %k1 {%k2}
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclasspsz $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfpclassps $171, (%rax){1to16}, %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspsz $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclassps $171, (%rax){1to16}, %k1 {%k2}
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasssd $171, %xmm16, %k1
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasssd $171, (%rax), %k1
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasssd $171, %xmm16, %k1 {%k2}
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s
index 8968d576b6fd..cff188701926 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s
@@ -320,30 +320,30 @@ vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 1 0.33 vorps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %xmm16, %k1
-# CHECK-NEXT: 2 10 0.50 * vfpclasspdx $171, (%rax), %k1
-# CHECK-NEXT: 2 10 0.50 * vfpclasspd $171, (%rax){1to2}, %k1
-# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %xmm16, %k1 {%k2}
-# CHECK-NEXT: 2 10 0.50 * vfpclasspdx $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: 2 10 0.50 * vfpclasspd $171, (%rax){1to2}, %k1 {%k2}
-# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %ymm16, %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclasspdy $171, (%rax), %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclasspd $171, (%rax){1to4}, %k1
-# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %ymm16, %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclasspdy $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclasspd $171, (%rax){1to4}, %k1 {%k2}
-# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %xmm16, %k1
-# CHECK-NEXT: 2 10 0.50 * vfpclasspsx $171, (%rax), %k1
-# CHECK-NEXT: 2 10 0.50 * vfpclassps $171, (%rax){1to4}, %k1
-# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %xmm16, %k1 {%k2}
-# CHECK-NEXT: 2 10 0.50 * vfpclasspsx $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: 2 10 0.50 * vfpclassps $171, (%rax){1to4}, %k1 {%k2}
-# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %ymm16, %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclasspsy $171, (%rax), %k1
-# CHECK-NEXT: 2 11 0.50 * vfpclassps $171, (%rax){1to8}, %k1
-# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %ymm16, %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclasspsy $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: 2 11 0.50 * vfpclassps $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclasspd $171, %xmm16, %k1
+# CHECK-NEXT: 2 10 1.00 * vfpclasspdx $171, (%rax), %k1
+# CHECK-NEXT: 2 10 1.00 * vfpclasspd $171, (%rax){1to2}, %k1
+# CHECK-NEXT: 1 4 1.00 vfpclasspd $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT: 2 10 1.00 * vfpclasspdx $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: 2 10 1.00 * vfpclasspd $171, (%rax){1to2}, %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclasspd $171, %ymm16, %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclasspdy $171, (%rax), %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclasspd $171, (%rax){1to4}, %k1
+# CHECK-NEXT: 1 4 1.00 vfpclasspd $171, %ymm16, %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclasspdy $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclasspd $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclassps $171, %xmm16, %k1
+# CHECK-NEXT: 2 10 1.00 * vfpclasspsx $171, (%rax), %k1
+# CHECK-NEXT: 2 10 1.00 * vfpclassps $171, (%rax){1to4}, %k1
+# CHECK-NEXT: 1 4 1.00 vfpclassps $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT: 2 10 1.00 * vfpclasspsx $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: 2 10 1.00 * vfpclassps $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT: 1 4 1.00 vfpclassps $171, %ymm16, %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclasspsy $171, (%rax), %k1
+# CHECK-NEXT: 2 11 1.00 * vfpclassps $171, (%rax){1to8}, %k1
+# CHECK-NEXT: 1 4 1.00 vfpclassps $171, %ymm16, %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclasspsy $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: 2 11 1.00 * vfpclassps $171, (%rax){1to8}, %k1 {%k2}
# CHECK-NEXT: 3 12 1.50 vpmullq %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 4 18 1.00 * vpmullq (%rax), %xmm17, %xmm19
# CHECK-NEXT: 3 12 1.50 vpmullq %xmm16, %xmm17, %xmm19 {%k1}
@@ -407,7 +407,7 @@ vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 72.00 72.00 59.00 59.00 - 60.00 - -
+# CHECK-NEXT: - - 64.00 64.00 59.00 59.00 - 76.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -520,29 +520,29 @@ vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasspd $171, %xmm16, %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspdx $171, (%rax), %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspd $171, (%rax){1to2}, %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspdx $171, (%rax), %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspd $171, (%rax){1to2}, %k1
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasspd $171, %xmm16, %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspdx $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspd $171, (%rax){1to2}, %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspdx $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspd $171, (%rax){1to2}, %k1 {%k2}
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasspd $171, %ymm16, %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspdy $171, (%rax), %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspd $171, (%rax){1to4}, %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspdy $171, (%rax), %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspd $171, (%rax){1to4}, %k1
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclasspd $171, %ymm16, %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspdy $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspd $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspdy $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspd $171, (%rax){1to4}, %k1 {%k2}
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclassps $171, %xmm16, %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspsx $171, (%rax), %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclassps $171, (%rax){1to4}, %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspsx $171, (%rax), %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclassps $171, (%rax){1to4}, %k1
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclassps $171, %xmm16, %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspsx $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclassps $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspsx $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclassps $171, (%rax){1to4}, %k1 {%k2}
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclassps $171, %ymm16, %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspsy $171, (%rax), %k1
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclassps $171, (%rax){1to8}, %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspsy $171, (%rax), %k1
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclassps $171, (%rax){1to8}, %k1
# CHECK-NEXT: - - - - - - - 1.00 - - vfpclassps $171, %ymm16, %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclasspsy $171, (%rax), %k1 {%k2}
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vfpclassps $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclasspsy $171, (%rax), %k1 {%k2}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vfpclassps $171, (%rax){1to8}, %k1 {%k2}
# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %xmm16, %xmm17, %xmm19 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
index b31524dbacb2..0c1b8ac8581b 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
@@ -1002,30 +1002,30 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 4 0.50 vaddps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vaddps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vaddps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vcmpeqpd (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vcmpeqpd (%rax){1to2}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vcmpeqpd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vcmpeqpd (%rax){1to2}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax){1to4}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqpd %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax){1to4}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vcmpeqps (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vcmpeqps (%rax){1to4}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vcmpeqps (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vcmpeqps (%rax){1to4}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax){1to8}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vcmpeqps %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqpd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqpd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vcmpeqpd (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqpd %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqpd %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqpd (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqps %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqps %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vcmpeqps (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vcmpeqps %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vcmpeqps %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vcmpeqps (%rax){1to8}, %ymm1, %k2 {%k3}
# CHECK-NEXT: 2 5 1.00 vcvtdq2pd %xmm16, %xmm19
# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax), %xmm19
# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax){1to2}, %xmm19
@@ -1250,102 +1250,102 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 1 0.33 vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqd %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtd (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtd (%rax){1to4}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtd (%rax){1to4}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtd %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax){1to8}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtd %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax){1to8}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtq %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtq (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtq (%rax){1to2}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtq %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtq (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpgtq (%rax){1to2}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpgtq %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax){1to4}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpgtq %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax){1to4}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpeqq %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpequd (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpequd (%rax){1to4}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpequd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpequd (%rax){1to4}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequd %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax){1to8}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequd %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax){1to8}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequq %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpequq (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vpcmpequq (%rax){1to2}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequq %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpequq (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vpcmpequq (%rax){1to2}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vpcmpequq %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax){1to4}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vpcmpequq %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqd (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqd %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqd (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtd (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtd %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtd %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtd (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtq %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtq %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpgtq %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpgtq %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpeqq (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpeqq %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpeqq (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpequd (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequd %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequd %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequd (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequq %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequq %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vpcmpequq (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vpcmpequq %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vpcmpequq %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vpcmpequq (%rax){1to4}, %ymm1, %k2 {%k3}
# CHECK-NEXT: 1 3 1.00 vpermd %ymm16, %ymm17, %ymm19
# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19
@@ -1552,54 +1552,54 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 1 0.33 vpsubq %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 3 1.00 vptestmd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestmd (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestmd (%rax){1to4}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestmd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestmd (%rax){1to4}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmd %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax){1to8}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmd %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax){1to8}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmq %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestmq (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestmq (%rax){1to2}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmq %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestmq (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestmq (%rax){1to2}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestmq %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax){1to4}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestmq %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax){1to4}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmd %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestnmd (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestnmd (%rax){1to4}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmd %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestnmd (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestnmd (%rax){1to4}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmd %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax){1to8}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmd %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax){1to8}, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmq %xmm0, %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestnmq (%rax), %xmm1, %k2
-# CHECK-NEXT: 2 9 1.00 * vptestnmq (%rax){1to2}, %xmm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmq %xmm0, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestnmq (%rax), %xmm1, %k2 {%k3}
-# CHECK-NEXT: 2 9 1.00 * vptestnmq (%rax){1to2}, %xmm1, %k2 {%k3}
-# CHECK-NEXT: 1 3 1.00 vptestnmq %ymm0, %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax), %ymm1, %k2
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax){1to4}, %ymm1, %k2
-# CHECK-NEXT: 1 3 1.00 vptestnmq %ymm0, %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax), %ymm1, %k2 {%k3}
-# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestmd (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmd %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmd %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmd (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmq %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmq %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestmq (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestmq %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestmq %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestmq (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmd %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmd %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestnmd (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmd %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmd %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT: 2 11 1.00 * vptestnmd (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmq %xmm0, %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax), %xmm1, %k2
+# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT: 1 4 1.00 vptestnmq %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT: 2 10 1.00 * vptestnmq (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT: 1 4 1.00 vptestnmq %ymm0, %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax), %ymm1, %k2
+# CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax){1to4}, %ymm1, %k2
+# 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
More information about the llvm-commits
mailing list