(_.info512.VT (insert_subvector undef,
(_.info256.VT (insert_subvector undef,
(_.info128.VT _.info128.RC:$src),
- (i64 0))),
- (i64 0)))),
+ (iPTR 0))),
+ (iPTR 0)))),
(!cast<Instruction>(InstrStr#mrk) addr:$dst,
(i1 (COPY_TO_REGCLASS MaskRC:$mask, VK1WM)),
(COPY_TO_REGCLASS _.info128.RC:$src, _.info128.FRC))>;
(_.info512.VT (masked_load addr:$srcAddr, Mask,
(_.info512.VT (bitconvert
(v16i32 immAllZerosV))))),
- (i64 0))),
+ (iPTR 0))),
(!cast<Instruction>(InstrStr#rmkz)
(i1 (COPY_TO_REGCLASS MaskRC:$mask, VK1WM)),
addr:$srcAddr)>;
(_.info512.VT (insert_subvector undef,
(_.info256.VT (insert_subvector undef,
(_.info128.VT (X86vzmovl _.info128.RC:$src)),
- (i64 0))),
- (i64 0))))),
- (i64 0))),
+ (iPTR 0))),
+ (iPTR 0))))),
+ (iPTR 0))),
(!cast<Instruction>(InstrStr#rmk) _.info128.RC:$src,
(i1 (COPY_TO_REGCLASS MaskRC:$mask, VK1WM)),
addr:$srcAddr)>;
;
; CHECK32-LABEL: test_mm_mask_store_ss:
; CHECK32: # BB#0: # %entry
-; CHECK32-NEXT: # kill: %XMM0<def> %XMM0<kill> %ZMM0<def>
; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK32-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
-; CHECK32-NEXT: andl $1, %ecx
; CHECK32-NEXT: kmovw %ecx, %k1
-; CHECK32-NEXT: vmovups %zmm0, (%eax) {%k1}
-; CHECK32-NEXT: vzeroupper
+; CHECK32-NEXT: vmovss %xmm0, (%eax) {%k1}
; CHECK32-NEXT: retl
entry:
%0 = bitcast float* %__W to <16 x float>*
;
; CHECK32-LABEL: test_mm_mask_store_sd:
; CHECK32: # BB#0: # %entry
-; CHECK32-NEXT: # kill: %XMM0<def> %XMM0<kill> %ZMM0<def>
; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK32-NEXT: movb {{[0-9]+}}(%esp), %cl
-; CHECK32-NEXT: andb $1, %cl
; CHECK32-NEXT: kmovw %ecx, %k1
-; CHECK32-NEXT: vmovupd %zmm0, (%eax) {%k1}
-; CHECK32-NEXT: vzeroupper
+; CHECK32-NEXT: vmovsd %xmm0, (%eax) {%k1}
; CHECK32-NEXT: retl
entry:
%0 = bitcast double* %__W to <8 x double>*
; CHECK32: # BB#0: # %entry
; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK32-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
-; CHECK32-NEXT: vxorps %xmm1, %xmm1, %xmm1
-; CHECK32-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
-; CHECK32-NEXT: andl $1, %ecx
; CHECK32-NEXT: kmovw %ecx, %k1
-; CHECK32-NEXT: vmovups (%eax), %zmm0 {%k1}
-; CHECK32-NEXT: # kill: %XMM0<def> %XMM0<kill> %ZMM0<kill>
-; CHECK32-NEXT: vzeroupper
+; CHECK32-NEXT: vmovss (%eax), %xmm0 {%k1}
; CHECK32-NEXT: retl
entry:
%shuffle.i = shufflevector <4 x float> %__A, <4 x float> <float 0.000000e+00, float undef, float undef, float undef>, <4 x i32> <i32 0, i32 4, i32 4, i32 4>
; CHECK32: # BB#0: # %entry
; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK32-NEXT: movb {{[0-9]+}}(%esp), %cl
-; CHECK32-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
-; CHECK32-NEXT: andb $1, %cl
; CHECK32-NEXT: kmovw %ecx, %k1
-; CHECK32-NEXT: vmovupd (%eax), %zmm0 {%k1}
-; CHECK32-NEXT: # kill: %XMM0<def> %XMM0<kill> %ZMM0<kill>
-; CHECK32-NEXT: vzeroupper
+; CHECK32-NEXT: vmovsd (%eax), %xmm0 {%k1}
; CHECK32-NEXT: retl
entry:
%shuffle5.i = insertelement <2 x double> %__A, double 0.000000e+00, i32 1
; CHECK32: # BB#0: # %entry
; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK32-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
-; CHECK32-NEXT: andl $1, %ecx
; CHECK32-NEXT: kmovw %ecx, %k1
-; CHECK32-NEXT: vmovups (%eax), %zmm0 {%k1} {z}
-; CHECK32-NEXT: # kill: %XMM0<def> %XMM0<kill> %ZMM0<kill>
-; CHECK32-NEXT: vzeroupper
+; CHECK32-NEXT: vmovss (%eax), %xmm0 {%k1} {z}
; CHECK32-NEXT: retl
entry:
%0 = bitcast float* %__W to <16 x float>*
; CHECK32: # BB#0: # %entry
; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK32-NEXT: movb {{[0-9]+}}(%esp), %cl
-; CHECK32-NEXT: andb $1, %cl
; CHECK32-NEXT: kmovw %ecx, %k1
-; CHECK32-NEXT: vmovupd (%eax), %zmm0 {%k1} {z}
-; CHECK32-NEXT: # kill: %XMM0<def> %XMM0<kill> %ZMM0<kill>
-; CHECK32-NEXT: vzeroupper
+; CHECK32-NEXT: vmovsd (%eax), %xmm0 {%k1} {z}
; CHECK32-NEXT: retl
entry:
%0 = bitcast double* %__W to <8 x double>*