; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=thumbv8.1m.main-none-none-eabi -mattr=+mve.fp -enable-arm-maskedldst -enable-mem-access-versioning=false -tail-predication=force-enabled %s -o - | FileCheck %s

define dso_local void @mve_gather_qi_wb(i32* noalias nocapture readonly %A, i32* noalias nocapture readonly %B, i32* noalias nocapture %C, i32 %n, i32 %m, i32 %l) {
; CHECK-LABEL: mve_gather_qi_wb:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    .save {r4, lr}
; CHECK-NEXT:    push {r4, lr}
; CHECK-NEXT:    add.w r4, r0, r3, lsl #2
; CHECK-NEXT:    adr r0, .LCPI0_0
; CHECK-NEXT:    vldrw.u32 q1, [r0]
; CHECK-NEXT:    vmov.i32 q0, #0x0
; CHECK-NEXT:    vadd.i32 q1, q1, r1
; CHECK-NEXT:    adds r1, r3, #4
; CHECK-NEXT:    dlstp.32 lr, r3
; CHECK-NEXT:  .LBB0_1: @ %vector.body
; CHECK-NEXT:    @ =>This Inner Loop Header: Depth=1
; CHECK-NEXT:    vldrw.u32 q2, [r4], #16
; CHECK-NEXT:    vldrw.u32 q3, [q1, #80]!
; CHECK-NEXT:    vmul.i32 q2, q3, q2
; CHECK-NEXT:    vadd.i32 q0, q0, q2
; CHECK-NEXT:    letp lr, .LBB0_1
; CHECK-NEXT:  @ %bb.2: @ %middle.block
; CHECK-NEXT:    vaddv.u32 r0, q0
; CHECK-NEXT:    str.w r0, [r2, r1, lsl #2]
; CHECK-NEXT:    pop {r4, pc}
; CHECK-NEXT:    .p2align 4
; CHECK-NEXT:  @ %bb.3:
; CHECK-NEXT:  .LCPI0_0:
; CHECK-NEXT:    .long 4294967228 @ 0xffffffbc
; CHECK-NEXT:    .long 4294967248 @ 0xffffffd0
; CHECK-NEXT:    .long 4294967268 @ 0xffffffe4
; CHECK-NEXT:    .long 4294967288 @ 0xfffffff8
entry:                                  ; preds = %middle.
  %add.us.us = add i32 4, %n
  %arrayidx.us.us = getelementptr inbounds i32, i32* %C, i32 %add.us.us
  br label %vector.body
vector.body:                                      ; preds = %vector.body, %entry
  %index = phi i32 [ 0, %entry ], [ %index.next, %vector.body ]
  %vec.phi = phi <4 x i32> [ zeroinitializer, %entry ], [ %7, %vector.body ]
  %vec.ind = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %entry ], [ %vec.ind.next, %vector.body ]
  %0 = add i32 %index, %n
  %1 = getelementptr inbounds i32, i32* %A, i32 %0
  %active.lane.mask = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %index, i32 %n)
  %2 = bitcast i32* %1 to <4 x i32>*
  %wide.masked.load = call <4 x i32> @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %2, i32 4, <4 x i1> %active.lane.mask, <4 x i32> undef)
  %3 = mul <4 x i32> %vec.ind, <i32 5, i32 5, i32 5, i32 5>
  %4 = add <4 x i32> %3, <i32 3, i32 3, i32 3, i32 3>
  %5 = getelementptr inbounds i32, i32* %B, <4 x i32> %4
  %wide.masked.gather = call <4 x i32> @llvm.masked.gather.v4i32.v4p0i32(<4 x i32*> %5, i32 4, <4 x i1> %active.lane.mask, <4 x i32> undef)
  %6 = mul nsw <4 x i32> %wide.masked.gather, %wide.masked.load
  %7 = add <4 x i32> %vec.phi, %6
  %index.next = add i32 %index, 4
  %vec.ind.next = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
  %8 = icmp eq i32 %index.next, 5000
  br i1 %8, label %middle.block, label %vector.body
middle.block:                                     ; preds = %vector.body
  %9 = select <4 x i1> %active.lane.mask, <4 x i32> %7, <4 x i32> %vec.phi
  %10 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %7)
  store i32 %10, i32* %arrayidx.us.us, align 4
  %inc21.us.us = add nuw i32 4, 1
  %exitcond81.not = icmp eq i32 %inc21.us.us, %n
  br label %end
end:                                 ; preds = %middle.block
  ret void
}

define dso_local void @mve_gatherscatter_offset(i32* noalias nocapture readonly %A, i32* noalias nocapture readonly %B, i32* noalias nocapture %C, i32 %n, i32 %m, i32 %l) {
; CHECK-LABEL: mve_gatherscatter_offset:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    .save {r4, lr}
; CHECK-NEXT:    push {r4, lr}
; CHECK-NEXT:    .vsave {d8, d9}
; CHECK-NEXT:    vpush {d8, d9}
; CHECK-NEXT:    add.w r4, r0, r3, lsl #2
; CHECK-NEXT:    adr r0, .LCPI1_0
; CHECK-NEXT:    vldrw.u32 q2, [r0]
; CHECK-NEXT:    add.w r12, r3, #4
; CHECK-NEXT:    vmov.i32 q0, #0x0
; CHECK-NEXT:    vmov.i32 q1, #0x14
; CHECK-NEXT:    dlstp.32 lr, r3
; CHECK-NEXT:  .LBB1_1: @ %vector.body
; CHECK-NEXT:    @ =>This Inner Loop Header: Depth=1
; CHECK-NEXT:    vldrw.u32 q3, [r1, q2, uxtw #2]
; CHECK-NEXT:    vldrw.u32 q4, [r4], #16
; CHECK-NEXT:    vmul.i32 q3, q3, q4
; CHECK-NEXT:    vstrw.32 q3, [r1, q2, uxtw #2]
; CHECK-NEXT:    vadd.i32 q2, q2, q1
; CHECK-NEXT:    vadd.i32 q0, q0, q3
; CHECK-NEXT:    letp lr, .LBB1_1
; CHECK-NEXT:  @ %bb.2: @ %middle.block
; CHECK-NEXT:    vaddv.u32 r0, q0
; CHECK-NEXT:    str.w r0, [r2, r12, lsl #2]
; CHECK-NEXT:    vpop {d8, d9}
; CHECK-NEXT:    pop {r4, pc}
; CHECK-NEXT:    .p2align 4
; CHECK-NEXT:  @ %bb.3:
; CHECK-NEXT:  .LCPI1_0:
; CHECK-NEXT:    .long 3 @ 0x3
; CHECK-NEXT:    .long 8 @ 0x8
; CHECK-NEXT:    .long 13 @ 0xd
; CHECK-NEXT:    .long 18 @ 0x12
entry:                                  ; preds = %middle.
  %add.us.us = add i32 4, %n
  %arrayidx.us.us = getelementptr inbounds i32, i32* %C, i32 %add.us.us
  br label %vector.body
vector.body:                                      ; preds = %vector.body, %entry
  %index = phi i32 [ 0, %entry ], [ %index.next, %vector.body ]
  %vec.phi = phi <4 x i32> [ zeroinitializer, %entry ], [ %7, %vector.body ]
  %vec.ind = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %entry ], [ %vec.ind.next, %vector.body ]
  %0 = add i32 %index, %n
  %1 = getelementptr inbounds i32, i32* %A, i32 %0
  %active.lane.mask = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %index, i32 %n)
  %2 = bitcast i32* %1 to <4 x i32>*
  %wide.masked.load = call <4 x i32> @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %2, i32 4, <4 x i1> %active.lane.mask, <4 x i32> undef)
  %3 = mul <4 x i32> %vec.ind, <i32 5, i32 5, i32 5, i32 5>
  %4 = add <4 x i32> %3, <i32 3, i32 3, i32 3, i32 3>
  %5 = getelementptr inbounds i32, i32* %B, <4 x i32> %4
  %wide.masked.gather = call <4 x i32> @llvm.masked.gather.v4i32.v4p0i32(<4 x i32*> %5, i32 4, <4 x i1> %active.lane.mask, <4 x i32> undef)
  %6 = mul nsw <4 x i32> %wide.masked.gather, %wide.masked.load
  call void @llvm.masked.scatter.v4i32.v4p0i32(<4 x i32> %6, <4 x i32*> %5, i32 4, <4 x i1> %active.lane.mask)
  %7 = add <4 x i32> %vec.phi, %6
  %index.next = add i32 %index, 4
  %vec.ind.next = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
  %8 = icmp eq i32 %index.next, 5000
  br i1 %8, label %middle.block, label %vector.body
middle.block:                                     ; preds = %vector.body
  %9 = select <4 x i1> %active.lane.mask, <4 x i32> %7, <4 x i32> %vec.phi
  %10 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %7)
  store i32 %10, i32* %arrayidx.us.us, align 4
  %inc21.us.us = add nuw i32 4, 1
  %exitcond81.not = icmp eq i32 %inc21.us.us, %n
  br label %end
end:                                 ; preds = %middle.block
  ret void
}

define dso_local void @mve_scatter_qi(i32* noalias nocapture readonly %A, i32* noalias nocapture readonly %B, i32* noalias nocapture %C, i32 %n, i32 %m, i32 %l) {
; CHECK-LABEL: mve_scatter_qi:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    .save {r4, lr}
; CHECK-NEXT:    push {r4, lr}
; CHECK-NEXT:    add.w r4, r0, r3, lsl #2
; CHECK-NEXT:    adr r0, .LCPI2_0
; CHECK-NEXT:    vldrw.u32 q1, [r0]
; CHECK-NEXT:    vmov.i32 q0, #0x0
; CHECK-NEXT:    movw r12, #1250
; CHECK-NEXT:    vmov.i32 q2, #0x3
; CHECK-NEXT:    vadd.i32 q1, q1, r1
; CHECK-NEXT:    adds r1, r3, #4
; CHECK-NEXT:    dls lr, r12
; CHECK-NEXT:  .LBB2_1: @ %vector.body
; CHECK-NEXT:    @ =>This Inner Loop Header: Depth=1
; CHECK-NEXT:    vctp.32 r3
; CHECK-NEXT:    subs r3, #4
; CHECK-NEXT:    vpst
; CHECK-NEXT:    vldrwt.u32 q3, [r4], #16
; CHECK-NEXT:    vmul.i32 q3, q3, q2
; CHECK-NEXT:    vpst
; CHECK-NEXT:    vstrwt.32 q3, [q1, #80]!
; CHECK-NEXT:    vadd.i32 q0, q0, q3
; CHECK-NEXT:    le lr, .LBB2_1
; CHECK-NEXT:  @ %bb.2: @ %middle.block
; CHECK-NEXT:    vaddv.u32 r0, q0
; CHECK-NEXT:    str.w r0, [r2, r1, lsl #2]
; CHECK-NEXT:    pop {r4, pc}
; CHECK-NEXT:    .p2align 4
; CHECK-NEXT:  @ %bb.3:
; CHECK-NEXT:  .LCPI2_0:
; CHECK-NEXT:    .long 4294967228 @ 0xffffffbc
; CHECK-NEXT:    .long 4294967248 @ 0xffffffd0
; CHECK-NEXT:    .long 4294967268 @ 0xffffffe4
; CHECK-NEXT:    .long 4294967288 @ 0xfffffff8
entry:                                  ; preds = %middle.
  %add.us.us = add i32 4, %n
  %arrayidx.us.us = getelementptr inbounds i32, i32* %C, i32 %add.us.us
  br label %vector.body
vector.body:                                      ; preds = %vector.body, %entry
  %index = phi i32 [ 0, %entry ], [ %index.next, %vector.body ]
  %vec.phi = phi <4 x i32> [ zeroinitializer, %entry ], [ %7, %vector.body ]
  %vec.ind = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %entry ], [ %vec.ind.next, %vector.body ]
  %0 = add i32 %index, %n
  %1 = getelementptr inbounds i32, i32* %A, i32 %0
  %active.lane.mask = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %index, i32 %n)
  %2 = bitcast i32* %1 to <4 x i32>*
  %wide.masked.load = call <4 x i32> @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %2, i32 4, <4 x i1> %active.lane.mask, <4 x i32> undef)
  %3 = mul <4 x i32> %vec.ind, <i32 5, i32 5, i32 5, i32 5>
  %4 = add <4 x i32> %3, <i32 3, i32 3, i32 3, i32 3>
  %5 = getelementptr inbounds i32, i32* %B, <4 x i32> %4
  %6 = mul nsw <4 x i32> <i32 3, i32 3, i32 3, i32 3>, %wide.masked.load
  call void @llvm.masked.scatter.v4i32.v4p0i32(<4 x i32> %6, <4 x i32*> %5, i32 4, <4 x i1> %active.lane.mask)
  %7 = add <4 x i32> %vec.phi, %6
  %index.next = add i32 %index, 4
  %vec.ind.next = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
  %8 = icmp eq i32 %index.next, 5000
  br i1 %8, label %middle.block, label %vector.body
middle.block:                                     ; preds = %vector.body
  %9 = select <4 x i1> %active.lane.mask, <4 x i32> %7, <4 x i32> %vec.phi
  %10 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %7)
  store i32 %10, i32* %arrayidx.us.us, align 4
  %inc21.us.us = add nuw i32 4, 1
  %exitcond81.not = icmp eq i32 %inc21.us.us, %n
  br label %end
end:                                 ; preds = %middle.block
  ret void
}

define void @justoffsets(i8* noalias nocapture readonly %r, i8* noalias nocapture %w, i32 %N) {
; CHECK-LABEL: justoffsets:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    .save {r4, r5, r6, r7, r8, r9, lr}
; CHECK-NEXT:    push.w {r4, r5, r6, r7, r8, r9, lr}
; CHECK-NEXT:    .pad #4
; CHECK-NEXT:    sub sp, #4
; CHECK-NEXT:    .vsave {d8, d9, d10, d11, d12, d13, d14, d15}
; CHECK-NEXT:    vpush {d8, d9, d10, d11, d12, d13, d14, d15}
; CHECK-NEXT:    .pad #32
; CHECK-NEXT:    sub sp, #32
; CHECK-NEXT:    cmp r2, #0
; CHECK-NEXT:    beq .LBB3_3
; CHECK-NEXT:  @ %bb.1: @ %vector.ph
; CHECK-NEXT:    adr r5, .LCPI3_2
; CHECK-NEXT:    vldrw.u32 q1, [r5]
; CHECK-NEXT:    adr r4, .LCPI3_1
; CHECK-NEXT:    movw r5, #50417
; CHECK-NEXT:    adr r3, .LCPI3_0
; CHECK-NEXT:    movw r7, #32769
; CHECK-NEXT:    vldrw.u32 q2, [r4]
; CHECK-NEXT:    movw r4, #47888
; CHECK-NEXT:    vldrw.u32 q3, [r3]
; CHECK-NEXT:    vstrw.32 q1, [sp, #16] @ 16-byte Spill
; CHECK-NEXT:    vmov.i32 q1, #0x7fff
; CHECK-NEXT:    vmov.i32 q0, #0x8000
; CHECK-NEXT:    movw r12, #7471
; CHECK-NEXT:    movw r9, #19595
; CHECK-NEXT:    movw r8, #38470
; CHECK-NEXT:    movt r4, #65535
; CHECK-NEXT:    movt r5, #65535
; CHECK-NEXT:    movw r6, #19485
; CHECK-NEXT:    movt r7, #65535
; CHECK-NEXT:    movw r3, #13282
; CHECK-NEXT:    vstrw.32 q1, [sp] @ 16-byte Spill
; CHECK-NEXT:    dlstp.32 lr, r2
; CHECK-NEXT:  .LBB3_2: @ %vector.body
; CHECK-NEXT:    @ =>This Inner Loop Header: Depth=1
; CHECK-NEXT:    vldrw.u32 q1, [sp, #16] @ 16-byte Reload
; CHECK-NEXT:    vldrb.u32 q5, [r0, q2]
; CHECK-NEXT:    vldrb.u32 q6, [r0, q3]
; CHECK-NEXT:    vldrb.u32 q7, [r0, q1]
; CHECK-NEXT:    adds r0, #12
; CHECK-NEXT:    vmul.i32 q4, q5, r8
; CHECK-NEXT:    vmla.u32 q4, q7, r9
; CHECK-NEXT:    vmla.u32 q4, q6, r12
; CHECK-NEXT:    vadd.i32 q4, q4, q0
; CHECK-NEXT:    vshr.u32 q4, q4, #16
; CHECK-NEXT:    vstrb.32 q4, [r1, q1]
; CHECK-NEXT:    vldrw.u32 q1, [sp] @ 16-byte Reload
; CHECK-NEXT:    vmul.i32 q4, q7, q1
; CHECK-NEXT:    vmul.i32 q1, q5, r7
; CHECK-NEXT:    vmla.u32 q1, q7, r3
; CHECK-NEXT:    vmla.u32 q4, q5, r5
; CHECK-NEXT:    vmla.u32 q1, q6, r6
; CHECK-NEXT:    vmla.u32 q4, q6, r4
; CHECK-NEXT:    vadd.i32 q1, q1, q0
; CHECK-NEXT:    vadd.i32 q4, q4, q0
; CHECK-NEXT:    vshr.u32 q4, q4, #16
; CHECK-NEXT:    vshr.u32 q1, q1, #16
; CHECK-NEXT:    vstrb.32 q4, [r1, q2]
; CHECK-NEXT:    vstrb.32 q1, [r1, q3]
; CHECK-NEXT:    adds r1, #12
; CHECK-NEXT:    letp lr, .LBB3_2
; CHECK-NEXT:  .LBB3_3: @ %for.cond.cleanup
; CHECK-NEXT:    add sp, #32
; CHECK-NEXT:    vpop {d8, d9, d10, d11, d12, d13, d14, d15}
; CHECK-NEXT:    add sp, #4
; CHECK-NEXT:    pop.w {r4, r5, r6, r7, r8, r9, pc}
; CHECK-NEXT:    .p2align 4
; CHECK-NEXT:  @ %bb.4:
; CHECK-NEXT:  .LCPI3_0:
; CHECK-NEXT:    .long 2 @ 0x2
; CHECK-NEXT:    .long 5 @ 0x5
; CHECK-NEXT:    .long 8 @ 0x8
; CHECK-NEXT:    .long 11 @ 0xb
; CHECK-NEXT:  .LCPI3_1:
; CHECK-NEXT:    .long 1 @ 0x1
; CHECK-NEXT:    .long 4 @ 0x4
; CHECK-NEXT:    .long 7 @ 0x7
; CHECK-NEXT:    .long 10 @ 0xa
; CHECK-NEXT:  .LCPI3_2:
; CHECK-NEXT:    .long 0 @ 0x0
; CHECK-NEXT:    .long 3 @ 0x3
; CHECK-NEXT:    .long 6 @ 0x6
; CHECK-NEXT:    .long 9 @ 0x9
entry:
  %cmp47.not = icmp eq i32 %N, 0
  br i1 %cmp47.not, label %for.cond.cleanup, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.rnd.up = add i32 %N, 3
  %n.vec = and i32 %n.rnd.up, -4
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %pointer.phi = phi i8* [ %r, %vector.ph ], [ %ptr.ind, %vector.body ]
  %pointer.phi55 = phi i8* [ %w, %vector.ph ], [ %ptr.ind56, %vector.body ]
  %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %l1 = getelementptr i8, i8* %pointer.phi, <4 x i32> <i32 0, i32 3, i32 6, i32 9>
  %l2 = getelementptr i8, i8* %pointer.phi55, <4 x i32> <i32 0, i32 3, i32 6, i32 9>
  %l3 = getelementptr inbounds i8, <4 x i8*> %l1, i32 1
  %active.lane.mask = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %index, i32 %N)
  %wide.masked.gather = call <4 x i8> @llvm.masked.gather.v4i8.v4p0i8(<4 x i8*> %l1, i32 1, <4 x i1> %active.lane.mask, <4 x i8> undef)
  %l4 = getelementptr inbounds i8, <4 x i8*> %l1, i32 2
  %wide.masked.gather57 = call <4 x i8> @llvm.masked.gather.v4i8.v4p0i8(<4 x i8*> %l3, i32 1, <4 x i1> %active.lane.mask, <4 x i8> undef)
  %wide.masked.gather58 = call <4 x i8> @llvm.masked.gather.v4i8.v4p0i8(<4 x i8*> %l4, i32 1, <4 x i1> %active.lane.mask, <4 x i8> undef)
  %l5 = zext <4 x i8> %wide.masked.gather to <4 x i32>
  %l6 = mul nuw nsw <4 x i32> %l5, <i32 19595, i32 19595, i32 19595, i32 19595>
  %l7 = zext <4 x i8> %wide.masked.gather57 to <4 x i32>
  %l8 = mul nuw nsw <4 x i32> %l7, <i32 38470, i32 38470, i32 38470, i32 38470>
  %l9 = zext <4 x i8> %wide.masked.gather58 to <4 x i32>
  %l10 = mul nuw nsw <4 x i32> %l9, <i32 7471, i32 7471, i32 7471, i32 7471>
  %l11 = add nuw nsw <4 x i32> %l6, <i32 32768, i32 32768, i32 32768, i32 32768>
  %l12 = add nuw nsw <4 x i32> %l11, %l8
  %l13 = add nuw nsw <4 x i32> %l12, %l10
  %l14 = lshr <4 x i32> %l13, <i32 16, i32 16, i32 16, i32 16>
  %l15 = trunc <4 x i32> %l14 to <4 x i8>
  %l16 = mul nuw nsw <4 x i32> %l5, <i32 32767, i32 32767, i32 32767, i32 32767>
  %l17 = mul nsw <4 x i32> %l7, <i32 -15119, i32 -15119, i32 -15119, i32 -15119>
  %l18 = mul nsw <4 x i32> %l9, <i32 -17648, i32 -17648, i32 -17648, i32 -17648>
  %l19 = add nuw nsw <4 x i32> %l16, <i32 32768, i32 32768, i32 32768, i32 32768>
  %l20 = add nsw <4 x i32> %l19, %l17
  %l21 = add nsw <4 x i32> %l20, %l18
  %l22 = lshr <4 x i32> %l21, <i32 16, i32 16, i32 16, i32 16>
  %l23 = trunc <4 x i32> %l22 to <4 x i8>
  %l24 = mul nuw nsw <4 x i32> %l5, <i32 13282, i32 13282, i32 13282, i32 13282>
  %l25 = mul nsw <4 x i32> %l7, <i32 -32767, i32 -32767, i32 -32767, i32 -32767>
  %l26 = mul nuw nsw <4 x i32> %l9, <i32 19485, i32 19485, i32 19485, i32 19485>
  %l27 = add nuw nsw <4 x i32> %l24, <i32 32768, i32 32768, i32 32768, i32 32768>
  %l28 = add nsw <4 x i32> %l27, %l25
  %l29 = add nsw <4 x i32> %l28, %l26
  %l30 = lshr <4 x i32> %l29, <i32 16, i32 16, i32 16, i32 16>
  %l31 = trunc <4 x i32> %l30 to <4 x i8>
  %l32 = getelementptr inbounds i8, <4 x i8*> %l2, i32 1
  call void @llvm.masked.scatter.v4i8.v4p0i8(<4 x i8> %l15, <4 x i8*> %l2, i32 1, <4 x i1> %active.lane.mask)
  %l33 = getelementptr inbounds i8, <4 x i8*> %l2, i32 2
  call void @llvm.masked.scatter.v4i8.v4p0i8(<4 x i8> %l23, <4 x i8*> %l32, i32 1, <4 x i1> %active.lane.mask)
  call void @llvm.masked.scatter.v4i8.v4p0i8(<4 x i8> %l31, <4 x i8*> %l33, i32 1, <4 x i1> %active.lane.mask)
  %index.next = add i32 %index, 4
  %l34 = icmp eq i32 %index.next, %n.vec
  %ptr.ind = getelementptr i8, i8* %pointer.phi, i32 12
  %ptr.ind56 = getelementptr i8, i8* %pointer.phi55, i32 12
  br i1 %l34, label %for.cond.cleanup, label %vector.body

for.cond.cleanup:                                 ; preds = %vector.body, %for.body, %entry
  ret void
}

declare i32 @llvm.vector.reduce.add.v4i32(<4 x i32>)
declare <4 x i32> @llvm.masked.gather.v4i32.v4p0i32(<4 x i32*>, i32, <4 x i1>, <4 x i32>)
declare <4 x i8> @llvm.masked.gather.v4i8.v4p0i8(<4 x i8*>, i32, <4 x i1>, <4 x i8>)
declare <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32, i32)
declare <4 x i32> @llvm.masked.load.v4i32.p0v4i32(<4 x i32>*, i32, <4 x i1>, <4 x i32>)
declare void @llvm.masked.scatter.v4i32.v4p0i32(<4 x i32>, <4 x i32*>, i32, <4 x i1>)
declare void @llvm.masked.scatter.v4i8.v4p0i8(<4 x i8>, <4 x i8*>, i32, <4 x i1>)
