valignq $1, (%rax), %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vbroadcastf32x4 (%rax), %zmm19
+vbroadcastf32x4 (%rax), %zmm19 {k1}
+vbroadcastf32x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x4 (%rax), %zmm19
+vbroadcastf64x4 (%rax), %zmm19 {k1}
+vbroadcastf64x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x4 (%rax), %zmm19
+vbroadcasti32x4 (%rax), %zmm19 {k1}
+vbroadcasti32x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x4 (%rax), %zmm19
+vbroadcasti64x4 (%rax), %zmm19 {k1}
+vbroadcasti64x4 (%rax), %zmm19 {z}{k1}
+
vbroadcastsd %xmm16, %zmm19
vbroadcastsd (%rax), %zmm19
vbroadcastsd %xmm16, %zmm19 {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: 2 8 1.00 * vbroadcastf32x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x4 (%rax), %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: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 1506.00 138.67 201.67 - 426.67 219.50 219.50
+# CHECK-NEXT: - 1506.00 138.67 201.67 - 438.67 225.50 225.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, %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 0.50 0.50 vbroadcastf32x4 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x4 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x4 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x4 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x4 (%rax), %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}
vandps (%rax), %zmm17, %zmm19 {z}{k1}
vandps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vbroadcastf32x2 %xmm16, %zmm19
+vbroadcastf32x2 (%rax), %zmm19
+vbroadcastf32x2 %xmm16, %zmm19 {k1}
+vbroadcastf32x2 (%rax), %zmm19 {k1}
+vbroadcastf32x2 %xmm16, %zmm19 {z}{k1}
+vbroadcastf32x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf32x8 (%rax), %zmm19
+vbroadcastf32x8 (%rax), %zmm19 {k1}
+vbroadcastf32x8 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x2 (%rax), %zmm19
+vbroadcastf64x2 (%rax), %zmm19 {k1}
+vbroadcastf64x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %zmm19
+vbroadcasti32x2 (%rax), %zmm19
+vbroadcasti32x2 %xmm16, %zmm19 {k1}
+vbroadcasti32x2 (%rax), %zmm19 {k1}
+vbroadcasti32x2 %xmm16, %zmm19 {z}{k1}
+vbroadcasti32x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x8 (%rax), %zmm19
+vbroadcasti32x8 (%rax), %zmm19 {k1}
+vbroadcasti32x8 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x2 (%rax), %zmm19
+vbroadcasti64x2 (%rax), %zmm19 {k1}
+vbroadcasti64x2 (%rax), %zmm19 {z}{k1}
+
vcvtqq2pd %zmm16, %zmm19
vcvtqq2pd (%rax), %zmm19
vcvtqq2pd (%rax){1to8}, %zmm19
# CHECK-NEXT: 1 1 1.00 vandps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcastf32x2 %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x2 (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcastf32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcastf32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x8 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x2 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x2 (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x8 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x2 (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x2 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %zmm16, %zmm19
# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %zmm19
# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to8}, %zmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 9.67 41.67 - 86.67 37.50 37.50
+# CHECK-NEXT: - - 9.67 41.67 - 110.67 46.50 46.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - - - - 1.00 - - vandps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x8 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x8 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x2 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %zmm16, %zmm19
# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %zmm19
# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to8}, %zmm19
vandps (%rax), %ymm17, %ymm19 {z}{k1}
vandps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vbroadcastf32x2 %xmm16, %ymm19
+vbroadcastf32x2 (%rax), %ymm19
+vbroadcastf32x2 %xmm16, %ymm19 {k1}
+vbroadcastf32x2 (%rax), %ymm19 {k1}
+vbroadcastf32x2 %xmm16, %ymm19 {z}{k1}
+vbroadcastf32x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcastf64x2 (%rax), %ymm19
+vbroadcastf64x2 (%rax), %ymm19 {k1}
+vbroadcastf64x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %xmm19
+vbroadcasti32x2 (%rax), %xmm19
+vbroadcasti32x2 %xmm16, %xmm19 {k1}
+vbroadcasti32x2 (%rax), %xmm19 {k1}
+vbroadcasti32x2 %xmm16, %xmm19 {z}{k1}
+vbroadcasti32x2 (%rax), %xmm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %ymm19
+vbroadcasti32x2 (%rax), %ymm19
+vbroadcasti32x2 %xmm16, %ymm19 {k1}
+vbroadcasti32x2 (%rax), %ymm19 {k1}
+vbroadcasti32x2 %xmm16, %ymm19 {z}{k1}
+vbroadcasti32x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti64x2 (%rax), %ymm19
+vbroadcasti64x2 (%rax), %ymm19 {k1}
+vbroadcasti64x2 (%rax), %ymm19 {z}{k1}
+
vcvtqq2pd %xmm16, %xmm19
vcvtqq2pd (%rax), %xmm19
vcvtqq2pd (%rax){1to2}, %xmm19
# CHECK-NEXT: 1 1 1.00 vandps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcastf32x2 %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x2 (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vbroadcastf32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcastf32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x2 (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x2 (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x2 (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti64x2 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %xmm16, %xmm19
# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %xmm19
# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to2}, %xmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 14.67 44.67 - 146.67 59.00 59.00
+# CHECK-NEXT: - - 14.67 46.17 - 169.17 66.50 66.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - - - - 1.00 - - vandps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vbroadcasti32x2 (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vbroadcasti32x2 (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vbroadcasti32x2 (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti64x2 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %xmm16, %xmm19
# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %xmm19
# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to2}, %xmm19
valignq $1, (%rax), %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vbroadcastf32x4 (%rax), %ymm19
+vbroadcastf32x4 (%rax), %ymm19 {k1}
+vbroadcastf32x4 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x4 (%rax), %ymm19
+vbroadcasti32x4 (%rax), %ymm19 {k1}
+vbroadcasti32x4 (%rax), %ymm19 {z}{k1}
+
vbroadcastsd %xmm16, %ymm19
vbroadcastsd (%rax), %ymm19
vbroadcastsd %xmm16, %ymm19 {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: 2 8 1.00 * vbroadcastf32x4 (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcastf32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x4 (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vbroadcasti32x4 (%rax), %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: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 1935.00 196.00 359.50 - 602.50 347.50 347.50
+# CHECK-NEXT: - 1935.00 196.00 359.50 - 608.50 350.50 350.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 0.50 0.50 vbroadcastf32x4 (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x4 (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcasti32x4 (%rax), %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}
valignq $1, (%rax), %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vbroadcastf32x4 (%rax), %zmm19
+vbroadcastf32x4 (%rax), %zmm19 {k1}
+vbroadcastf32x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x4 (%rax), %zmm19
+vbroadcastf64x4 (%rax), %zmm19 {k1}
+vbroadcastf64x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x4 (%rax), %zmm19
+vbroadcasti32x4 (%rax), %zmm19 {k1}
+vbroadcasti32x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x4 (%rax), %zmm19
+vbroadcasti64x4 (%rax), %zmm19 {k1}
+vbroadcasti64x4 (%rax), %zmm19 {z}{k1}
+
vbroadcastsd %xmm16, %zmm19
vbroadcastsd (%rax), %zmm19
vbroadcastsd %xmm16, %zmm19 {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: 2 8 0.50 * vbroadcastf32x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x4 (%rax), %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: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 612.00 216.67 37.67 255.50 255.50 - 535.67 2.00 - - -
+# CHECK-NEXT: - 612.00 220.67 41.67 261.50 261.50 - 539.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: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x4 (%rax), %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}
vandps (%rax), %zmm17, %zmm19 {z}{k1}
vandps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vbroadcastf32x2 %xmm16, %zmm19
+vbroadcastf32x2 (%rax), %zmm19
+vbroadcastf32x2 %xmm16, %zmm19 {k1}
+vbroadcastf32x2 (%rax), %zmm19 {k1}
+vbroadcastf32x2 %xmm16, %zmm19 {z}{k1}
+vbroadcastf32x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf32x8 (%rax), %zmm19
+vbroadcastf32x8 (%rax), %zmm19 {k1}
+vbroadcastf32x8 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x2 (%rax), %zmm19
+vbroadcastf64x2 (%rax), %zmm19 {k1}
+vbroadcastf64x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %zmm19
+vbroadcasti32x2 (%rax), %zmm19
+vbroadcasti32x2 %xmm16, %zmm19 {k1}
+vbroadcasti32x2 (%rax), %zmm19 {k1}
+vbroadcasti32x2 %xmm16, %zmm19 {z}{k1}
+vbroadcasti32x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x8 (%rax), %zmm19
+vbroadcasti32x8 (%rax), %zmm19 {k1}
+vbroadcasti32x8 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x2 (%rax), %zmm19
+vbroadcasti64x2 (%rax), %zmm19 {k1}
+vbroadcasti64x2 (%rax), %zmm19 {z}{k1}
+
vcvtqq2pd %zmm16, %zmm19
vcvtqq2pd (%rax), %zmm19
vcvtqq2pd (%rax){1to8}, %zmm19
# CHECK-NEXT: 1 1 0.50 vandps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x8 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x8 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %zmm16, %zmm19
# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %zmm19
# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to8}, %zmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 59.50 4.50 37.50 37.50 - 83.50 0.50 - - -
+# CHECK-NEXT: - - 65.50 10.50 46.50 46.50 - 95.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 - - - - vandps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vandps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastf32x2 %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastf32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastf32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x8 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x2 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x8 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x2 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x2 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vcvtqq2pd %zmm16, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vcvtqq2pd (%rax), %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vcvtqq2pd (%rax){1to8}, %zmm19
vandps (%rax), %ymm17, %ymm19 {z}{k1}
vandps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vbroadcastf32x2 %xmm16, %ymm19
+vbroadcastf32x2 (%rax), %ymm19
+vbroadcastf32x2 %xmm16, %ymm19 {k1}
+vbroadcastf32x2 (%rax), %ymm19 {k1}
+vbroadcastf32x2 %xmm16, %ymm19 {z}{k1}
+vbroadcastf32x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcastf64x2 (%rax), %ymm19
+vbroadcastf64x2 (%rax), %ymm19 {k1}
+vbroadcastf64x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %xmm19
+vbroadcasti32x2 (%rax), %xmm19
+vbroadcasti32x2 %xmm16, %xmm19 {k1}
+vbroadcasti32x2 (%rax), %xmm19 {k1}
+vbroadcasti32x2 %xmm16, %xmm19 {z}{k1}
+vbroadcasti32x2 (%rax), %xmm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %ymm19
+vbroadcasti32x2 (%rax), %ymm19
+vbroadcasti32x2 %xmm16, %ymm19 {k1}
+vbroadcasti32x2 (%rax), %ymm19 {k1}
+vbroadcasti32x2 %xmm16, %ymm19 {z}{k1}
+vbroadcasti32x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti64x2 (%rax), %ymm19
+vbroadcasti64x2 (%rax), %ymm19 {k1}
+vbroadcasti64x2 (%rax), %ymm19 {z}{k1}
+
vcvtqq2pd %xmm16, %xmm19
vcvtqq2pd (%rax), %xmm19
vcvtqq2pd (%rax){1to2}, %xmm19
# CHECK-NEXT: 1 1 0.33 vandps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %xmm16, %xmm19
# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax), %xmm19
# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax){1to2}, %xmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 72.00 68.00 59.00 59.00 - 71.00 1.00 - - -
+# CHECK-NEXT: - - 77.00 73.00 66.50 66.50 - 85.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.33 0.33 - - - 0.33 - - - - vandps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vandps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastf32x2 %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastf32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcastf32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x2 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vbroadcasti32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x2 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti64x2 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vcvtqq2pd %xmm16, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vcvtqq2pd (%rax), %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vcvtqq2pd (%rax){1to2}, %xmm19
valignq $1, (%rax), %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vbroadcastf32x4 (%rax), %ymm19
+vbroadcastf32x4 (%rax), %ymm19 {k1}
+vbroadcastf32x4 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x4 (%rax), %ymm19
+vbroadcasti32x4 (%rax), %ymm19 {k1}
+vbroadcasti32x4 (%rax), %ymm19 {z}{k1}
+
vbroadcastsd %xmm16, %ymm19
vbroadcastsd (%rax), %ymm19
vbroadcastsd %xmm16, %ymm19 {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: 2 8 0.50 * vbroadcastf32x4 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %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: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 423.00 255.33 167.33 369.50 369.50 - 713.33 4.00 - - -
+# CHECK-NEXT: - 423.00 257.33 169.33 372.50 372.50 - 715.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: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x4 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcastf32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x4 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vbroadcasti32x4 (%rax), %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}
valignq $1, (%rax), %zmm17, %zmm19 {z}{k1}
valignq $1, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vbroadcastf32x4 (%rax), %zmm19
+vbroadcastf32x4 (%rax), %zmm19 {k1}
+vbroadcastf32x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x4 (%rax), %zmm19
+vbroadcastf64x4 (%rax), %zmm19 {k1}
+vbroadcastf64x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x4 (%rax), %zmm19
+vbroadcasti32x4 (%rax), %zmm19 {k1}
+vbroadcasti32x4 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x4 (%rax), %zmm19
+vbroadcasti64x4 (%rax), %zmm19 {k1}
+vbroadcasti64x4 (%rax), %zmm19 {z}{k1}
+
vbroadcastsd %xmm16, %zmm19
vbroadcastsd (%rax), %zmm19
vbroadcastsd %xmm16, %zmm19 {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: 2 8 0.50 * vbroadcastf32x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x4 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x4 (%rax), %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: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 612.00 216.67 37.67 255.50 255.50 - 535.67 2.00 -
+# CHECK-NEXT: - 612.00 220.67 41.67 261.50 261.50 - 539.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: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x4 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x4 (%rax), %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}
vandps (%rax), %zmm17, %zmm19 {z}{k1}
vandps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vbroadcastf32x2 %xmm16, %zmm19
+vbroadcastf32x2 (%rax), %zmm19
+vbroadcastf32x2 %xmm16, %zmm19 {k1}
+vbroadcastf32x2 (%rax), %zmm19 {k1}
+vbroadcastf32x2 %xmm16, %zmm19 {z}{k1}
+vbroadcastf32x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf32x8 (%rax), %zmm19
+vbroadcastf32x8 (%rax), %zmm19 {k1}
+vbroadcastf32x8 (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x2 (%rax), %zmm19
+vbroadcastf64x2 (%rax), %zmm19 {k1}
+vbroadcastf64x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %zmm19
+vbroadcasti32x2 (%rax), %zmm19
+vbroadcasti32x2 %xmm16, %zmm19 {k1}
+vbroadcasti32x2 (%rax), %zmm19 {k1}
+vbroadcasti32x2 %xmm16, %zmm19 {z}{k1}
+vbroadcasti32x2 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x8 (%rax), %zmm19
+vbroadcasti32x8 (%rax), %zmm19 {k1}
+vbroadcasti32x8 (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x2 (%rax), %zmm19
+vbroadcasti64x2 (%rax), %zmm19 {k1}
+vbroadcasti64x2 (%rax), %zmm19 {z}{k1}
+
vcvtqq2pd %zmm16, %zmm19
vcvtqq2pd (%rax), %zmm19
vcvtqq2pd (%rax){1to8}, %zmm19
# CHECK-NEXT: 1 1 0.50 vandps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x8 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %zmm19
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x8 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %zmm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %zmm16, %zmm19
# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %zmm19
# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to8}, %zmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 59.50 4.50 37.50 37.50 - 83.50 0.50 -
+# CHECK-NEXT: - - 65.50 10.50 46.50 46.50 - 95.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 - - vandps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x8 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x2 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x8 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x2 (%rax), %zmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x2 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtqq2pd %zmm16, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to8}, %zmm19
vandps (%rax), %ymm17, %ymm19 {z}{k1}
vandps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vbroadcastf32x2 %xmm16, %ymm19
+vbroadcastf32x2 (%rax), %ymm19
+vbroadcastf32x2 %xmm16, %ymm19 {k1}
+vbroadcastf32x2 (%rax), %ymm19 {k1}
+vbroadcastf32x2 %xmm16, %ymm19 {z}{k1}
+vbroadcastf32x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcastf64x2 (%rax), %ymm19
+vbroadcastf64x2 (%rax), %ymm19 {k1}
+vbroadcastf64x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %xmm19
+vbroadcasti32x2 (%rax), %xmm19
+vbroadcasti32x2 %xmm16, %xmm19 {k1}
+vbroadcasti32x2 (%rax), %xmm19 {k1}
+vbroadcasti32x2 %xmm16, %xmm19 {z}{k1}
+vbroadcasti32x2 (%rax), %xmm19 {z}{k1}
+
+vbroadcasti32x2 %xmm16, %ymm19
+vbroadcasti32x2 (%rax), %ymm19
+vbroadcasti32x2 %xmm16, %ymm19 {k1}
+vbroadcasti32x2 (%rax), %ymm19 {k1}
+vbroadcasti32x2 %xmm16, %ymm19 {z}{k1}
+vbroadcasti32x2 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti64x2 (%rax), %ymm19
+vbroadcasti64x2 (%rax), %ymm19 {k1}
+vbroadcasti64x2 (%rax), %ymm19 {z}{k1}
+
vcvtqq2pd %xmm16, %xmm19
vcvtqq2pd (%rax), %xmm19
vcvtqq2pd (%rax){1to2}, %xmm19
# CHECK-NEXT: 1 1 0.33 vandps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcastf32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vbroadcasti32x2 %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vbroadcasti32x2 (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %ymm19
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vbroadcasti32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti64x2 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %xmm16, %xmm19
# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax), %xmm19
# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax){1to2}, %xmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 72.00 68.00 59.00 59.00 - 71.00 1.00 -
+# CHECK-NEXT: - - 77.00 73.00 66.50 66.50 - 85.00 1.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcastf32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x2 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %xmm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vbroadcasti32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x2 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti64x2 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtqq2pd %xmm16, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to2}, %xmm19
valignq $1, (%rax), %ymm17, %ymm19 {z}{k1}
valignq $1, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+vbroadcastf32x4 (%rax), %ymm19
+vbroadcastf32x4 (%rax), %ymm19 {k1}
+vbroadcastf32x4 (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x4 (%rax), %ymm19
+vbroadcasti32x4 (%rax), %ymm19 {k1}
+vbroadcasti32x4 (%rax), %ymm19 {z}{k1}
+
vbroadcastsd %xmm16, %ymm19
vbroadcastsd (%rax), %ymm19
vbroadcastsd %xmm16, %ymm19 {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: 2 8 0.50 * vbroadcastf32x4 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcastf32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %ymm19
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vbroadcasti32x4 (%rax), %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: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 423.00 255.33 167.33 369.50 369.50 - 713.33 4.00 -
+# CHECK-NEXT: - 423.00 257.33 169.33 372.50 372.50 - 715.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: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x4 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcastf32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x4 (%rax), %ymm19
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vbroadcasti32x4 (%rax), %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}