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
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
# 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
# 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
# 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:
# 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
# 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
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}
# 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}
# 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:
# 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}
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}
# 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}
# 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:
# 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}
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
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
# 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
# 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
# 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:
# 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
# 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
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
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
# 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
# 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
# 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:
# 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
# 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
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}
# 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}
# 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:
# 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}
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}
# 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}
# 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:
# 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}
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
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
# 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
# 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
# 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:
# 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
# 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
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
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
# 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
# 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
# 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:
# 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
# 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
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}
# 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}
# 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:
# 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}
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}
# 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}
# 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:
# 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}
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
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
# 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
# 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
# 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:
# 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
# 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