CASE_MASKZ_INS_COMMON(BROADCASTI32X4, , rm)
CASE_MASKZ_INS_COMMON(BROADCASTF32X8, , rm)
CASE_MASKZ_INS_COMMON(BROADCASTI32X8, , rm)
+ CASE_MASKZ_INS_COMMON(BROADCASTI32X2, Z128, r)
+ CASE_MASKZ_INS_COMMON(BROADCASTI32X2, Z128, m)
CASE_MASKZ_INS_COMMON(BROADCASTF32X2, Z256, r)
CASE_MASKZ_INS_COMMON(BROADCASTI32X2, Z256, r)
CASE_MASKZ_INS_COMMON(BROADCASTF32X2, Z256, m)
CASE_MASK_INS_COMMON(BROADCASTI32X4, , rm)
CASE_MASK_INS_COMMON(BROADCASTF32X8, , rm)
CASE_MASK_INS_COMMON(BROADCASTI32X8, , rm)
+ CASE_MASK_INS_COMMON(BROADCASTI32X2, Z128, r)
+ CASE_MASK_INS_COMMON(BROADCASTI32X2, Z128, m)
CASE_MASK_INS_COMMON(BROADCASTF32X2, Z256, r)
CASE_MASK_INS_COMMON(BROADCASTI32X2, Z256, r)
CASE_MASK_INS_COMMON(BROADCASTF32X2, Z256, m)
DecodeSubVectorBroadcast(MVT::v16f32, MVT::v8f32, ShuffleMask);
DestName = getRegName(MI->getOperand(0).getReg());
break;
+ CASE_AVX512_INS_COMMON(BROADCASTI32X2, Z128, r)
+ Src1Name = getRegName(MI->getOperand(NumOperands - 1).getReg());
+ LLVM_FALLTHROUGH;
+ CASE_AVX512_INS_COMMON(BROADCASTI32X2, Z128, m)
+ DecodeSubVectorBroadcast(MVT::v4f32, MVT::v2f32, ShuffleMask);
+ DestName = getRegName(MI->getOperand(0).getReg());
+ break;
CASE_AVX512_INS_COMMON(BROADCASTF32X2, Z256, r)
CASE_AVX512_INS_COMMON(BROADCASTI32X2, Z256, r)
Src1Name = getRegName(MI->getOperand(NumOperands - 1).getReg());
; CHECK: # BB#0:
; CHECK-NEXT: movb $4, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm1 {%k1}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm1 {%k1} = xmm0[0,1,0,1]
; CHECK-NEXT: vmovdqa %xmm1, %xmm0
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
; CHECK: # BB#0:
; CHECK-NEXT: movb $4, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm0 {%k1} {z}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm0 {%k1} {z} = xmm0[0,1,0,1]
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
%res = select <4 x i1> <i1 0, i1 0, i1 1, i1 0>, <4 x i32> %shuf, <4 x i32> zeroinitializer
; CHECK: # BB#0:
; CHECK-NEXT: movb $13, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm1 {%k1}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm1 {%k1} = xmm0[0,1,0,1]
; CHECK-NEXT: vmovdqa %xmm1, %xmm0
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
; CHECK: # BB#0:
; CHECK-NEXT: movb $13, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm0 {%k1} {z}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm0 {%k1} {z} = xmm0[0,1,0,1]
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
%res = select <4 x i1> <i1 1, i1 0, i1 1, i1 1>, <4 x i32> %shuf, <4 x i32> zeroinitializer
; CHECK: # BB#0:
; CHECK-NEXT: movb $5, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm1 {%k1}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm1 {%k1} = xmm0[0,1,0,1]
; CHECK-NEXT: vmovdqa %xmm1, %xmm0
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
; CHECK: # BB#0:
; CHECK-NEXT: movb $5, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm0 {%k1} {z}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm0 {%k1} {z} = xmm0[0,1,0,1]
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
%res = select <4 x i1> <i1 1, i1 0, i1 1, i1 0>, <4 x i32> %shuf, <4 x i32> zeroinitializer
; CHECK: # BB#0:
; CHECK-NEXT: movb $14, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm1 {%k1}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm1 {%k1} = xmm0[0,1,0,1]
; CHECK-NEXT: vmovdqa %xmm1, %xmm0
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
; CHECK: # BB#0:
; CHECK-NEXT: movb $14, %al
; CHECK-NEXT: kmovw %eax, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm0 {%k1} {z}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm0 {%k1} {z} = xmm0[0,1,0,1]
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
%res = select <4 x i1> <i1 0, i1 1, i1 1, i1 1>, <4 x i32> %shuf, <4 x i32> zeroinitializer
; CHECK-LABEL: test_broadcasti32x2_v4i32:
; CHECK: # BB#0:
; CHECK-NEXT: kmovw %edi, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm1 {%k1}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm1 {%k1} = xmm0[0,1,0,1]
; CHECK-NEXT: vmovdqa %xmm1, %xmm0
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
; CHECK-LABEL: test_broadcasti32x2_v4i32_z:
; CHECK: # BB#0:
; CHECK-NEXT: kmovw %edi, %k1
-; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm0 {%k1} {z}
+; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} xmm0 {%k1} {z} = xmm0[0,1,0,1]
; CHECK-NEXT: retq
%shuf = shufflevector <4 x i32> %vec, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
%mask.cast = bitcast i8 %mask to <8 x i1>