[llvm] b04c646 - [MCA][X86] Add AVX512 broadcast instruction test coverage
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 13 09:45:23 PST 2021
Author: Simon Pilgrim
Date: 2021-12-13T17:45:16Z
New Revision: b04c6467115054e40c6a55fc7d9001380d913c06
URL: https://github.com/llvm/llvm-project/commit/b04c6467115054e40c6a55fc7d9001380d913c06
DIFF: https://github.com/llvm/llvm-project/commit/b04c6467115054e40c6a55fc7d9001380d913c06.diff
LOG: [MCA][X86] Add AVX512 broadcast instruction test coverage
As noted on D115547
Added:
Modified:
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
Removed:
################################################################################
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
index 94da64e23dbca..e91da22aa9e00 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
@@ -50,6 +50,20 @@ valignq $1, %zmm16, %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax), %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vbroadcastsd %xmm16, %zmm19
+vbroadcastsd (%rax), %zmm19
+vbroadcastsd %xmm16, %zmm19 {k1}
+vbroadcastsd (%rax), %zmm19 {k1}
+vbroadcastsd %xmm16, %zmm19 {z}{k1}
+vbroadcastsd (%rax), %zmm19 {z}{k1}
+
+vbroadcastss %xmm16, %zmm19
+vbroadcastss (%rax), %zmm19
+vbroadcastss %xmm16, %zmm19 {k1}
+vbroadcastss (%rax), %zmm19 {k1}
+vbroadcastss %xmm16, %zmm19 {z}{k1}
+vbroadcastss (%rax), %zmm19 {z}{k1}
+
vcmppd $0, %zmm0, %zmm1, %k2
vcmppd $0, (%rax), %zmm1, %k2
vcmppd $0, (%rax){1to8}, %zmm1, %k2
@@ -242,6 +256,20 @@ vpaddq %zmm16, %zmm17, %zmm19 {z}{k1}
vpaddq (%rax), %zmm17, %zmm19 {z}{k1}
vpaddq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vpbroadcastd %xmm16, %zmm19
+vpbroadcastd (%rax), %zmm19
+vpbroadcastd %xmm16, %zmm19 {k1}
+vpbroadcastd (%rax), %zmm19 {k1}
+vpbroadcastd %xmm16, %zmm19 {z}{k1}
+vpbroadcastd (%rax), %zmm19 {z}{k1}
+
+vpbroadcastq %xmm16, %zmm19
+vpbroadcastq (%rax), %zmm19
+vpbroadcastq %xmm16, %zmm19 {k1}
+vpbroadcastq (%rax), %zmm19 {k1}
+vpbroadcastq %xmm16, %zmm19 {z}{k1}
+vpbroadcastq (%rax), %zmm19 {z}{k1}
+
vpcmpd $0, %zmm0, %zmm1, %k2
vpcmpd $0, (%rax), %zmm1, %k2
vpcmpd $0, (%rax){1to16}, %zmm1, %k2
@@ -791,6 +819,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 1 1.00 valignq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * valignq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcastsd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastsd (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcastsd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastsd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcastsd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastsd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %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
@@ -961,6 +1001,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 1 0.50 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 1 1.00 vpbroadcastd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastd (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastq (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpcmpeqd %zmm0, %zmm1, %k2
# CHECK-NEXT: 2 8 0.50 * vpcmpeqd (%rax), %zmm1, %k2
# CHECK-NEXT: 2 8 0.50 * vpcmpeqd (%rax){1to16}, %zmm1, %k2
@@ -1412,7 +1464,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 1506.00 138.67 201.67 - 384.67 209.00 209.00
+# CHECK-NEXT: - 1506.00 138.67 201.67 - 408.67 215.00 215.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -1460,6 +1512,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - - - - 1.00 - - valignq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 valignq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastsd %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastsd (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastsd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastsd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastsd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastsd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - - - - vcmpeqpd %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpeqpd (%rax), %zmm1, %k2
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpeqpd (%rax){1to8}, %zmm1, %k2
@@ -1630,6 +1694,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastd (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastq (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqd %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqd (%rax), %zmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqd (%rax){1to16}, %zmm1, %k2
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
index 3ccb8740de142..a1ea3bb5e5e6d 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
@@ -83,6 +83,20 @@ vpalignr $1, (%rax), %zmm17, %zmm19 {k1}
vpalignr $1, %zmm16, %zmm17, %zmm19 {z}{k1}
vpalignr $1, (%rax), %zmm17, %zmm19 {z}{k1}
+vpbroadcastb %xmm16, %zmm19
+vpbroadcastb (%rax), %zmm19
+vpbroadcastb %xmm16, %zmm19 {k1}
+vpbroadcastb (%rax), %zmm19 {k1}
+vpbroadcastb %xmm16, %zmm19 {z}{k1}
+vpbroadcastb (%rax), %zmm19 {z}{k1}
+
+vpbroadcastw %xmm16, %zmm19
+vpbroadcastw (%rax), %zmm19
+vpbroadcastw %xmm16, %zmm19 {k1}
+vpbroadcastw (%rax), %zmm19 {k1}
+vpbroadcastw %xmm16, %zmm19 {z}{k1}
+vpbroadcastw (%rax), %zmm19 {z}{k1}
+
vpcmpb $0, %zmm0, %zmm1, %k2
vpcmpb $0, (%rax), %zmm1, %k2
vpcmpb $0, %zmm0, %zmm1, %k2 {k3}
@@ -320,6 +334,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpcmpeqb %zmm0, %zmm1, %k2
# CHECK-NEXT: 2 8 0.50 * vpcmpeqb (%rax), %zmm1, %k2
# CHECK-NEXT: 1 1 0.50 vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
@@ -461,7 +487,7 @@ vpmovw2m %zmm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 10.67 47.67 - 141.67 44.50 44.50
+# CHECK-NEXT: - - 10.67 47.67 - 153.67 47.50 47.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -537,6 +563,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - 1.00 - - vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqb (%rax), %zmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
index 207660a754e02..d0eeeabcdb25f 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
@@ -127,6 +127,34 @@ vpalignr $1, (%rax), %ymm17, %ymm19 {k1}
vpalignr $1, %ymm16, %ymm17, %ymm19 {z}{k1}
vpalignr $1, (%rax), %ymm17, %ymm19 {z}{k1}
+vpbroadcastb %xmm16, %xmm19
+vpbroadcastb (%rax), %xmm19
+vpbroadcastb %xmm16, %xmm19 {k1}
+vpbroadcastb (%rax), %xmm19 {k1}
+vpbroadcastb %xmm16, %xmm19 {z}{k1}
+vpbroadcastb (%rax), %xmm19 {z}{k1}
+
+vpbroadcastb %xmm16, %ymm19
+vpbroadcastb (%rax), %ymm19
+vpbroadcastb %xmm16, %ymm19 {k1}
+vpbroadcastb (%rax), %ymm19 {k1}
+vpbroadcastb %xmm16, %ymm19 {z}{k1}
+vpbroadcastb (%rax), %ymm19 {z}{k1}
+
+vpbroadcastw %xmm16, %xmm19
+vpbroadcastw (%rax), %xmm19
+vpbroadcastw %xmm16, %xmm19 {k1}
+vpbroadcastw (%rax), %xmm19 {k1}
+vpbroadcastw %xmm16, %xmm19 {z}{k1}
+vpbroadcastw (%rax), %xmm19 {z}{k1}
+
+vpbroadcastw %xmm16, %ymm19
+vpbroadcastw (%rax), %ymm19
+vpbroadcastw %xmm16, %ymm19 {k1}
+vpbroadcastw (%rax), %ymm19 {k1}
+vpbroadcastw %xmm16, %ymm19 {z}{k1}
+vpbroadcastw (%rax), %ymm19 {z}{k1}
+
vpcmpb $0, %xmm0, %xmm1, %k2
vpcmpb $0, (%rax), %xmm1, %k2
vpcmpb $0, %xmm0, %xmm1, %k2 {k3}
@@ -556,6 +584,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastb (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastb (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastb (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastw (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %k2
# CHECK-NEXT: 2 7 0.50 * vpcmpeqb (%rax), %xmm1, %k2
# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
@@ -825,7 +877,7 @@ vpmovw2m %ymm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 13.33 128.33 - 222.33 89.00 89.00
+# CHECK-NEXT: - - 13.33 131.33 - 243.33 95.00 95.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -937,6 +989,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - 1.00 - - vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastb (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastb (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastb (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastw (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqb (%rax), %xmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
index 1e6e6711aa2de..65b6d4196040b 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
@@ -81,6 +81,27 @@ valignq $1, %ymm16, %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax), %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vbroadcastsd %xmm16, %ymm19
+vbroadcastsd (%rax), %ymm19
+vbroadcastsd %xmm16, %ymm19 {k1}
+vbroadcastsd (%rax), %ymm19 {k1}
+vbroadcastsd %xmm16, %ymm19 {z}{k1}
+vbroadcastsd (%rax), %ymm19 {z}{k1}
+
+vbroadcastss %xmm16, %xmm19
+vbroadcastss (%rax), %xmm19
+vbroadcastss %xmm16, %xmm19 {k1}
+vbroadcastss (%rax), %xmm19 {k1}
+vbroadcastss %xmm16, %xmm19 {z}{k1}
+vbroadcastss (%rax), %xmm19 {z}{k1}
+
+vbroadcastss %xmm16, %ymm19
+vbroadcastss (%rax), %ymm19
+vbroadcastss %xmm16, %ymm19 {k1}
+vbroadcastss (%rax), %ymm19 {k1}
+vbroadcastss %xmm16, %ymm19 {z}{k1}
+vbroadcastss (%rax), %ymm19 {z}{k1}
+
vcmppd $0, %xmm0, %xmm1, %k2
vcmppd $0, (%rax), %xmm1, %k2
vcmppd $0, (%rax){1to2}, %xmm1, %k2
@@ -359,6 +380,34 @@ vpaddq %ymm16, %ymm17, %ymm19 {z}{k1}
vpaddq (%rax), %ymm17, %ymm19 {z}{k1}
vpaddq (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vpbroadcastd %xmm16, %xmm19
+vpbroadcastd (%rax), %xmm19
+vpbroadcastd %xmm16, %xmm19 {k1}
+vpbroadcastd (%rax), %xmm19 {k1}
+vpbroadcastd %xmm16, %xmm19 {z}{k1}
+vpbroadcastd (%rax), %xmm19 {z}{k1}
+
+vpbroadcastd %xmm16, %ymm19
+vpbroadcastd (%rax), %ymm19
+vpbroadcastd %xmm16, %ymm19 {k1}
+vpbroadcastd (%rax), %ymm19 {k1}
+vpbroadcastd %xmm16, %ymm19 {z}{k1}
+vpbroadcastd (%rax), %ymm19 {z}{k1}
+
+vpbroadcastq %xmm16, %xmm19
+vpbroadcastq (%rax), %xmm19
+vpbroadcastq %xmm16, %xmm19 {k1}
+vpbroadcastq (%rax), %xmm19 {k1}
+vpbroadcastq %xmm16, %xmm19 {z}{k1}
+vpbroadcastq (%rax), %xmm19 {z}{k1}
+
+vpbroadcastq %xmm16, %ymm19
+vpbroadcastq (%rax), %ymm19
+vpbroadcastq %xmm16, %ymm19 {k1}
+vpbroadcastq (%rax), %ymm19 {k1}
+vpbroadcastq %xmm16, %ymm19 {z}{k1}
+vpbroadcastq (%rax), %ymm19 {z}{k1}
+
vpcmpd $0, %xmm0, %xmm1, %k2
vpcmpd $0, (%rax), %xmm1, %k2
vpcmpd $0, (%rax){1to4}, %xmm1, %k2
@@ -1218,6 +1267,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 1 1.00 valignq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * valignq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcastsd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastsd (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vbroadcastsd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastsd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcastsd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastsd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcastss %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastss (%rax), %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
@@ -1466,6 +1533,30 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 1 0.50 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 1 1.00 vpbroadcastd %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastd (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastq (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpcmpeqd %xmm0, %xmm1, %k2
# CHECK-NEXT: 2 7 0.50 * vpcmpeqd (%rax), %xmm1, %k2
# CHECK-NEXT: 2 7 0.50 * vpcmpeqd (%rax){1to4}, %xmm1, %k2
@@ -2165,7 +2256,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 1935.00 196.00 356.50 - 527.50 328.00 328.00
+# CHECK-NEXT: - 1935.00 196.00 359.50 - 566.50 338.50 338.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -2241,6 +2332,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - - - - 1.00 - - valignq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 valignq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastsd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastsd (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastsd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastsd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastsd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastsd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastss %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastss (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - - - - vcmpeqpd %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpeqpd (%rax), %xmm1, %k2
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpeqpd (%rax){1to2}, %xmm1, %k2
@@ -2489,6 +2598,30 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastd (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastd (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastq (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastq (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqd %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqd (%rax), %xmm1, %k2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqd (%rax){1to4}, %xmm1, %k2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
index b843e7ac84a54..c9a1befd1d7c2 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
@@ -50,6 +50,20 @@ valignq $1, %zmm16, %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax), %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vbroadcastsd %xmm16, %zmm19
+vbroadcastsd (%rax), %zmm19
+vbroadcastsd %xmm16, %zmm19 {k1}
+vbroadcastsd (%rax), %zmm19 {k1}
+vbroadcastsd %xmm16, %zmm19 {z}{k1}
+vbroadcastsd (%rax), %zmm19 {z}{k1}
+
+vbroadcastss %xmm16, %zmm19
+vbroadcastss (%rax), %zmm19
+vbroadcastss %xmm16, %zmm19 {k1}
+vbroadcastss (%rax), %zmm19 {k1}
+vbroadcastss %xmm16, %zmm19 {z}{k1}
+vbroadcastss (%rax), %zmm19 {z}{k1}
+
vcmppd $0, %zmm0, %zmm1, %k2
vcmppd $0, (%rax), %zmm1, %k2
vcmppd $0, (%rax){1to8}, %zmm1, %k2
@@ -242,6 +256,20 @@ vpaddq %zmm16, %zmm17, %zmm19 {z}{k1}
vpaddq (%rax), %zmm17, %zmm19 {z}{k1}
vpaddq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vpbroadcastd %xmm16, %zmm19
+vpbroadcastd (%rax), %zmm19
+vpbroadcastd %xmm16, %zmm19 {k1}
+vpbroadcastd (%rax), %zmm19 {k1}
+vpbroadcastd %xmm16, %zmm19 {z}{k1}
+vpbroadcastd (%rax), %zmm19 {z}{k1}
+
+vpbroadcastq %xmm16, %zmm19
+vpbroadcastq (%rax), %zmm19
+vpbroadcastq %xmm16, %zmm19 {k1}
+vpbroadcastq (%rax), %zmm19 {k1}
+vpbroadcastq %xmm16, %zmm19 {z}{k1}
+vpbroadcastq (%rax), %zmm19 {z}{k1}
+
vpcmpd $0, %zmm0, %zmm1, %k2
vpcmpd $0, (%rax), %zmm1, %k2
vpcmpd $0, (%rax){1to16}, %zmm1, %k2
@@ -791,6 +819,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 3 1.00 valignq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %zmm19 {%k1} {z}
# 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
@@ -961,6 +1001,18 @@ 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 vpbroadcastd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %zmm19 {%k1} {z}
# 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
@@ -1416,7 +1468,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 612.00 209.67 30.67 245.00 245.00 - 507.67 2.00 - - -
+# CHECK-NEXT: - 612.00 213.67 34.67 251.00 251.00 - 523.67 2.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1464,6 +1516,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - - - - - - 1.00 - - - - valignq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - valignq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastsd %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastsd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastsd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastsd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastsd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastsd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqpd %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vcmpeqpd (%rax), %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vcmpeqpd (%rax){1to8}, %zmm1, %k2
@@ -1634,6 +1698,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqd %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqd (%rax), %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqd (%rax){1to16}, %zmm1, %k2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
index 31a755f399932..12ee08425c2d6 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
@@ -83,6 +83,20 @@ vpalignr $1, (%rax), %zmm17, %zmm19 {k1}
vpalignr $1, %zmm16, %zmm17, %zmm19 {z}{k1}
vpalignr $1, (%rax), %zmm17, %zmm19 {z}{k1}
+vpbroadcastb %xmm16, %zmm19
+vpbroadcastb (%rax), %zmm19
+vpbroadcastb %xmm16, %zmm19 {k1}
+vpbroadcastb (%rax), %zmm19 {k1}
+vpbroadcastb %xmm16, %zmm19 {z}{k1}
+vpbroadcastb (%rax), %zmm19 {z}{k1}
+
+vpbroadcastw %xmm16, %zmm19
+vpbroadcastw (%rax), %zmm19
+vpbroadcastw %xmm16, %zmm19 {k1}
+vpbroadcastw (%rax), %zmm19 {k1}
+vpbroadcastw %xmm16, %zmm19 {z}{k1}
+vpbroadcastw (%rax), %zmm19 {z}{k1}
+
vpcmpb $0, %zmm0, %zmm1, %k2
vpcmpb $0, (%rax), %zmm1, %k2
vpcmpb $0, %zmm0, %zmm1, %k2 {k3}
@@ -320,6 +334,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} {z}
# 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}
@@ -465,7 +491,7 @@ vpmovw2m %zmm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 32.50 8.50 44.50 44.50 - 164.50 0.50 - - -
+# CHECK-NEXT: - - 32.50 8.50 47.50 47.50 - 176.50 0.50 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -541,6 +567,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqb (%rax), %zmm1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
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 8b2300ef2da5c..e013b4a20bed2 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
@@ -127,6 +127,34 @@ vpalignr $1, (%rax), %ymm17, %ymm19 {k1}
vpalignr $1, %ymm16, %ymm17, %ymm19 {z}{k1}
vpalignr $1, (%rax), %ymm17, %ymm19 {z}{k1}
+vpbroadcastb %xmm16, %xmm19
+vpbroadcastb (%rax), %xmm19
+vpbroadcastb %xmm16, %xmm19 {k1}
+vpbroadcastb (%rax), %xmm19 {k1}
+vpbroadcastb %xmm16, %xmm19 {z}{k1}
+vpbroadcastb (%rax), %xmm19 {z}{k1}
+
+vpbroadcastb %xmm16, %ymm19
+vpbroadcastb (%rax), %ymm19
+vpbroadcastb %xmm16, %ymm19 {k1}
+vpbroadcastb (%rax), %ymm19 {k1}
+vpbroadcastb %xmm16, %ymm19 {z}{k1}
+vpbroadcastb (%rax), %ymm19 {z}{k1}
+
+vpbroadcastw %xmm16, %xmm19
+vpbroadcastw (%rax), %xmm19
+vpbroadcastw %xmm16, %xmm19 {k1}
+vpbroadcastw (%rax), %xmm19 {k1}
+vpbroadcastw %xmm16, %xmm19 {z}{k1}
+vpbroadcastw (%rax), %xmm19 {z}{k1}
+
+vpbroadcastw %xmm16, %ymm19
+vpbroadcastw (%rax), %ymm19
+vpbroadcastw %xmm16, %ymm19 {k1}
+vpbroadcastw (%rax), %ymm19 {k1}
+vpbroadcastw %xmm16, %ymm19 {z}{k1}
+vpbroadcastw (%rax), %ymm19 {z}{k1}
+
vpcmpb $0, %xmm0, %xmm1, %k2
vpcmpb $0, (%rax), %xmm1, %k2
vpcmpb $0, %xmm0, %xmm1, %k2 {k3}
@@ -556,6 +584,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} {z}
# 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}
@@ -829,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 89.00 89.00 - 313.00 1.00 - - -
+# CHECK-NEXT: - - 33.00 29.00 95.00 95.00 - 337.00 1.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -941,6 +993,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqb (%rax), %xmm1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
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 4e4668d2d5eba..e00b1d90c585a 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
@@ -81,6 +81,27 @@ valignq $1, %ymm16, %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax), %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vbroadcastsd %xmm16, %ymm19
+vbroadcastsd (%rax), %ymm19
+vbroadcastsd %xmm16, %ymm19 {k1}
+vbroadcastsd (%rax), %ymm19 {k1}
+vbroadcastsd %xmm16, %ymm19 {z}{k1}
+vbroadcastsd (%rax), %ymm19 {z}{k1}
+
+vbroadcastss %xmm16, %xmm19
+vbroadcastss (%rax), %xmm19
+vbroadcastss %xmm16, %xmm19 {k1}
+vbroadcastss (%rax), %xmm19 {k1}
+vbroadcastss %xmm16, %xmm19 {z}{k1}
+vbroadcastss (%rax), %xmm19 {z}{k1}
+
+vbroadcastss %xmm16, %ymm19
+vbroadcastss (%rax), %ymm19
+vbroadcastss %xmm16, %ymm19 {k1}
+vbroadcastss (%rax), %ymm19 {k1}
+vbroadcastss %xmm16, %ymm19 {z}{k1}
+vbroadcastss (%rax), %ymm19 {z}{k1}
+
vcmppd $0, %xmm0, %xmm1, %k2
vcmppd $0, (%rax), %xmm1, %k2
vcmppd $0, (%rax){1to2}, %xmm1, %k2
@@ -359,6 +380,34 @@ vpaddq %ymm16, %ymm17, %ymm19 {z}{k1}
vpaddq (%rax), %ymm17, %ymm19 {z}{k1}
vpaddq (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vpbroadcastd %xmm16, %xmm19
+vpbroadcastd (%rax), %xmm19
+vpbroadcastd %xmm16, %xmm19 {k1}
+vpbroadcastd (%rax), %xmm19 {k1}
+vpbroadcastd %xmm16, %xmm19 {z}{k1}
+vpbroadcastd (%rax), %xmm19 {z}{k1}
+
+vpbroadcastd %xmm16, %ymm19
+vpbroadcastd (%rax), %ymm19
+vpbroadcastd %xmm16, %ymm19 {k1}
+vpbroadcastd (%rax), %ymm19 {k1}
+vpbroadcastd %xmm16, %ymm19 {z}{k1}
+vpbroadcastd (%rax), %ymm19 {z}{k1}
+
+vpbroadcastq %xmm16, %xmm19
+vpbroadcastq (%rax), %xmm19
+vpbroadcastq %xmm16, %xmm19 {k1}
+vpbroadcastq (%rax), %xmm19 {k1}
+vpbroadcastq %xmm16, %xmm19 {z}{k1}
+vpbroadcastq (%rax), %xmm19 {z}{k1}
+
+vpbroadcastq %xmm16, %ymm19
+vpbroadcastq (%rax), %ymm19
+vpbroadcastq %xmm16, %ymm19 {k1}
+vpbroadcastq (%rax), %ymm19 {k1}
+vpbroadcastq %xmm16, %ymm19 {z}{k1}
+vpbroadcastq (%rax), %ymm19 {z}{k1}
+
vpcmpd $0, %xmm0, %xmm1, %k2
vpcmpd $0, (%rax), %xmm1, %k2
vpcmpd $0, (%rax){1to4}, %xmm1, %k2
@@ -1218,6 +1267,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 3 1.00 valignq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vbroadcastss (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vbroadcastss (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vbroadcastss (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %ymm19 {%k1} {z}
# 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
@@ -1466,6 +1533,30 @@ 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 1 1.00 vpbroadcastd %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %ymm19 {%k1} {z}
# 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
@@ -2169,7 +2260,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 423.00 242.33 154.33 350.00 350.00 - 661.33 4.00 - - -
+# CHECK-NEXT: - 423.00 249.33 161.33 360.50 360.50 - 689.33 4.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2245,6 +2336,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - - - - - - 1.00 - - - - valignq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - valignq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastsd %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastsd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastsd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastsd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastsd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastsd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastss %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastss (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vcmpeqpd %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vcmpeqpd (%rax), %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vcmpeqpd (%rax){1to2}, %xmm1, %k2
@@ -2493,6 +2602,30 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddq (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpbroadcastq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqd %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqd (%rax), %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqd (%rax){1to4}, %xmm1, %k2
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 6994323cbf79f..bf2b6a3ed86a6 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
@@ -50,6 +50,20 @@ valignq $1, %zmm16, %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax), %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vbroadcastsd %xmm16, %zmm19
+vbroadcastsd (%rax), %zmm19
+vbroadcastsd %xmm16, %zmm19 {k1}
+vbroadcastsd (%rax), %zmm19 {k1}
+vbroadcastsd %xmm16, %zmm19 {z}{k1}
+vbroadcastsd (%rax), %zmm19 {z}{k1}
+
+vbroadcastss %xmm16, %zmm19
+vbroadcastss (%rax), %zmm19
+vbroadcastss %xmm16, %zmm19 {k1}
+vbroadcastss (%rax), %zmm19 {k1}
+vbroadcastss %xmm16, %zmm19 {z}{k1}
+vbroadcastss (%rax), %zmm19 {z}{k1}
+
vcmppd $0, %zmm0, %zmm1, %k2
vcmppd $0, (%rax), %zmm1, %k2
vcmppd $0, (%rax){1to8}, %zmm1, %k2
@@ -242,6 +256,20 @@ vpaddq %zmm16, %zmm17, %zmm19 {z}{k1}
vpaddq (%rax), %zmm17, %zmm19 {z}{k1}
vpaddq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vpbroadcastd %xmm16, %zmm19
+vpbroadcastd (%rax), %zmm19
+vpbroadcastd %xmm16, %zmm19 {k1}
+vpbroadcastd (%rax), %zmm19 {k1}
+vpbroadcastd %xmm16, %zmm19 {z}{k1}
+vpbroadcastd (%rax), %zmm19 {z}{k1}
+
+vpbroadcastq %xmm16, %zmm19
+vpbroadcastq (%rax), %zmm19
+vpbroadcastq %xmm16, %zmm19 {k1}
+vpbroadcastq (%rax), %zmm19 {k1}
+vpbroadcastq %xmm16, %zmm19 {z}{k1}
+vpbroadcastq (%rax), %zmm19 {z}{k1}
+
vpcmpd $0, %zmm0, %zmm1, %k2
vpcmpd $0, (%rax), %zmm1, %k2
vpcmpd $0, (%rax){1to16}, %zmm1, %k2
@@ -791,6 +819,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 1 3 1.00 valignq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %zmm19 {%k1} {z}
# 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
@@ -961,6 +1001,18 @@ 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 vpbroadcastd %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %zmm19 {%k1} {z}
# 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
@@ -1414,7 +1466,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 612.00 209.67 30.67 245.00 245.00 - 507.67 2.00 -
+# CHECK-NEXT: - 612.00 213.67 34.67 251.00 251.00 - 523.67 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -1462,6 +1514,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - - - - - - 1.00 - - valignq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - valignq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastsd %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastsd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastsd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastsd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastsd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastsd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vcmpeqpd %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vcmpeqpd (%rax), %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vcmpeqpd (%rax){1to8}, %zmm1, %k2
@@ -1632,6 +1696,18 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqd %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqd (%rax), %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqd (%rax){1to16}, %zmm1, %k2
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 011547634ba2a..389f51f937f99 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
@@ -83,6 +83,20 @@ vpalignr $1, (%rax), %zmm17, %zmm19 {k1}
vpalignr $1, %zmm16, %zmm17, %zmm19 {z}{k1}
vpalignr $1, (%rax), %zmm17, %zmm19 {z}{k1}
+vpbroadcastb %xmm16, %zmm19
+vpbroadcastb (%rax), %zmm19
+vpbroadcastb %xmm16, %zmm19 {k1}
+vpbroadcastb (%rax), %zmm19 {k1}
+vpbroadcastb %xmm16, %zmm19 {z}{k1}
+vpbroadcastb (%rax), %zmm19 {z}{k1}
+
+vpbroadcastw %xmm16, %zmm19
+vpbroadcastw (%rax), %zmm19
+vpbroadcastw %xmm16, %zmm19 {k1}
+vpbroadcastw (%rax), %zmm19 {k1}
+vpbroadcastw %xmm16, %zmm19 {z}{k1}
+vpbroadcastw (%rax), %zmm19 {z}{k1}
+
vpcmpb $0, %zmm0, %zmm1, %k2
vpcmpb $0, (%rax), %zmm1, %k2
vpcmpb $0, %zmm0, %zmm1, %k2 {k3}
@@ -320,6 +334,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} {z}
# 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}
@@ -463,7 +489,7 @@ vpmovw2m %zmm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 32.50 8.50 44.50 44.50 - 164.50 0.50 -
+# CHECK-NEXT: - - 32.50 8.50 47.50 47.50 - 176.50 0.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -539,6 +565,18 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %zmm0, %zmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqb (%rax), %zmm1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %zmm0, %zmm1, %k2 {%k3}
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 45179307e96c1..042108d1c7849 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
@@ -127,6 +127,34 @@ vpalignr $1, (%rax), %ymm17, %ymm19 {k1}
vpalignr $1, %ymm16, %ymm17, %ymm19 {z}{k1}
vpalignr $1, (%rax), %ymm17, %ymm19 {z}{k1}
+vpbroadcastb %xmm16, %xmm19
+vpbroadcastb (%rax), %xmm19
+vpbroadcastb %xmm16, %xmm19 {k1}
+vpbroadcastb (%rax), %xmm19 {k1}
+vpbroadcastb %xmm16, %xmm19 {z}{k1}
+vpbroadcastb (%rax), %xmm19 {z}{k1}
+
+vpbroadcastb %xmm16, %ymm19
+vpbroadcastb (%rax), %ymm19
+vpbroadcastb %xmm16, %ymm19 {k1}
+vpbroadcastb (%rax), %ymm19 {k1}
+vpbroadcastb %xmm16, %ymm19 {z}{k1}
+vpbroadcastb (%rax), %ymm19 {z}{k1}
+
+vpbroadcastw %xmm16, %xmm19
+vpbroadcastw (%rax), %xmm19
+vpbroadcastw %xmm16, %xmm19 {k1}
+vpbroadcastw (%rax), %xmm19 {k1}
+vpbroadcastw %xmm16, %xmm19 {z}{k1}
+vpbroadcastw (%rax), %xmm19 {z}{k1}
+
+vpbroadcastw %xmm16, %ymm19
+vpbroadcastw (%rax), %ymm19
+vpbroadcastw %xmm16, %ymm19 {k1}
+vpbroadcastw (%rax), %ymm19 {k1}
+vpbroadcastw %xmm16, %ymm19 {z}{k1}
+vpbroadcastw (%rax), %ymm19 {z}{k1}
+
vpcmpb $0, %xmm0, %xmm1, %k2
vpcmpb $0, (%rax), %xmm1, %k2
vpcmpb $0, %xmm0, %xmm1, %k2 {k3}
@@ -556,6 +584,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} {z}
# 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}
@@ -827,7 +879,7 @@ vpmovw2m %ymm0, %k0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 33.00 29.00 89.00 89.00 - 313.00 1.00 -
+# CHECK-NEXT: - - 33.00 29.00 95.00 95.00 - 337.00 1.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -939,6 +991,30 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqb (%rax), %xmm1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %xmm0, %xmm1, %k2 {%k3}
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 98f92d0acc4c5..9fdf26503769a 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
@@ -81,6 +81,27 @@ valignq $1, %ymm16, %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax), %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vbroadcastsd %xmm16, %ymm19
+vbroadcastsd (%rax), %ymm19
+vbroadcastsd %xmm16, %ymm19 {k1}
+vbroadcastsd (%rax), %ymm19 {k1}
+vbroadcastsd %xmm16, %ymm19 {z}{k1}
+vbroadcastsd (%rax), %ymm19 {z}{k1}
+
+vbroadcastss %xmm16, %xmm19
+vbroadcastss (%rax), %xmm19
+vbroadcastss %xmm16, %xmm19 {k1}
+vbroadcastss (%rax), %xmm19 {k1}
+vbroadcastss %xmm16, %xmm19 {z}{k1}
+vbroadcastss (%rax), %xmm19 {z}{k1}
+
+vbroadcastss %xmm16, %ymm19
+vbroadcastss (%rax), %ymm19
+vbroadcastss %xmm16, %ymm19 {k1}
+vbroadcastss (%rax), %ymm19 {k1}
+vbroadcastss %xmm16, %ymm19 {z}{k1}
+vbroadcastss (%rax), %ymm19 {z}{k1}
+
vcmppd $0, %xmm0, %xmm1, %k2
vcmppd $0, (%rax), %xmm1, %k2
vcmppd $0, (%rax){1to2}, %xmm1, %k2
@@ -359,6 +380,34 @@ vpaddq %ymm16, %ymm17, %ymm19 {z}{k1}
vpaddq (%rax), %ymm17, %ymm19 {z}{k1}
vpaddq (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vpbroadcastd %xmm16, %xmm19
+vpbroadcastd (%rax), %xmm19
+vpbroadcastd %xmm16, %xmm19 {k1}
+vpbroadcastd (%rax), %xmm19 {k1}
+vpbroadcastd %xmm16, %xmm19 {z}{k1}
+vpbroadcastd (%rax), %xmm19 {z}{k1}
+
+vpbroadcastd %xmm16, %ymm19
+vpbroadcastd (%rax), %ymm19
+vpbroadcastd %xmm16, %ymm19 {k1}
+vpbroadcastd (%rax), %ymm19 {k1}
+vpbroadcastd %xmm16, %ymm19 {z}{k1}
+vpbroadcastd (%rax), %ymm19 {z}{k1}
+
+vpbroadcastq %xmm16, %xmm19
+vpbroadcastq (%rax), %xmm19
+vpbroadcastq %xmm16, %xmm19 {k1}
+vpbroadcastq (%rax), %xmm19 {k1}
+vpbroadcastq %xmm16, %xmm19 {z}{k1}
+vpbroadcastq (%rax), %xmm19 {z}{k1}
+
+vpbroadcastq %xmm16, %ymm19
+vpbroadcastq (%rax), %ymm19
+vpbroadcastq %xmm16, %ymm19 {k1}
+vpbroadcastq (%rax), %ymm19 {k1}
+vpbroadcastq %xmm16, %ymm19 {z}{k1}
+vpbroadcastq (%rax), %ymm19 {z}{k1}
+
vpcmpd $0, %xmm0, %xmm1, %k2
vpcmpd $0, (%rax), %xmm1, %k2
vpcmpd $0, (%rax){1to4}, %xmm1, %k2
@@ -1218,6 +1267,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 3 1.00 valignq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastsd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastsd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vbroadcastss (%rax), %xmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vbroadcastss (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vbroadcastss (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastss %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastss (%rax), %ymm19 {%k1} {z}
# 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
@@ -1466,6 +1533,30 @@ 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 1 1.00 vpbroadcastd %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpbroadcastq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpbroadcastq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpbroadcastq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpbroadcastq (%rax), %ymm19 {%k1} {z}
# 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
@@ -2167,7 +2258,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 423.00 242.33 154.33 350.00 350.00 - 661.33 4.00 -
+# CHECK-NEXT: - 423.00 249.33 161.33 360.50 360.50 - 689.33 4.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2243,6 +2334,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - - - - - - 1.00 - - valignq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - valignq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastsd %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastsd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastsd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastsd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastsd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastsd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastss %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastss (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vcmpeqpd %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vcmpeqpd (%rax), %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vcmpeqpd (%rax){1to2}, %xmm1, %k2
@@ -2491,6 +2600,30 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpbroadcastq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqd %xmm0, %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqd (%rax), %xmm1, %k2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqd (%rax){1to4}, %xmm1, %k2
More information about the llvm-commits
mailing list