brintos

brintos / llvm-project-archived public Read only

0
0
Text · 32.9 KiB · d076cb0 Raw
755 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=thumbv8.1m.main-none-none-eabi -verify-machineinstrs -mattr=+mve %s -o - | FileCheck %s3 4@var_36 = hidden local_unnamed_addr global i8 0, align 15@arr_61 = hidden local_unnamed_addr global [1 x i32] zeroinitializer, align 46 7define i32 @test(i8 zeroext %var_2, i16 signext %var_15, ptr %arr_60) {8; CHECK-LABEL: test:9; CHECK:       @ %bb.0: @ %entry10; CHECK-NEXT:    .save {r4, r5, r6, r7, r8, r9, r10, r11, lr}11; CHECK-NEXT:    push.w {r4, r5, r6, r7, r8, r9, r10, r11, lr}12; CHECK-NEXT:    .pad #1613; CHECK-NEXT:    sub sp, #1614; CHECK-NEXT:    cmp r0, #015; CHECK-NEXT:    beq.w .LBB0_1116; CHECK-NEXT:  @ %bb.1: @ %for.cond1.preheader17; CHECK-NEXT:    cmp r2, #018; CHECK-NEXT:    beq.w .LBB0_1219; CHECK-NEXT:  @ %bb.2: @ %for.cond1.preheader120; CHECK-NEXT:    addw r0, r2, #44121; CHECK-NEXT:    str r0, [sp, #8] @ 4-byte Spill22; CHECK-NEXT:    addw r0, r2, #41923; CHECK-NEXT:    str r0, [sp, #4] @ 4-byte Spill24; CHECK-NEXT:    addw r0, r2, #39725; CHECK-NEXT:    movw r5, :lower16:var_3626; CHECK-NEXT:    str r0, [sp] @ 4-byte Spill27; CHECK-NEXT:    movw r0, #2747628; CHECK-NEXT:    movt r5, :upper16:var_3629; CHECK-NEXT:    sdiv r1, r0, r130; CHECK-NEXT:    str r2, [sp, #12] @ 4-byte Spill31; CHECK-NEXT:  .LBB0_3: @ %for.cond132; CHECK-NEXT:    @ =>This Loop Header: Depth=133; CHECK-NEXT:    @ Child Loop BB0_4 Depth 234; CHECK-NEXT:    @ Child Loop BB0_5 Depth 335; CHECK-NEXT:    @ Child Loop BB0_7 Depth 336; CHECK-NEXT:    @ Child Loop BB0_9 Depth 337; CHECK-NEXT:    ldr.w r12, [sp, #8] @ 4-byte Reload38; CHECK-NEXT:    mov.w r10, #039; CHECK-NEXT:    ldrd r8, r0, [sp] @ 8-byte Folded Reload40; CHECK-NEXT:  .LBB0_4: @ %for.cond6.preheader41; CHECK-NEXT:    @ Parent Loop BB0_3 Depth=142; CHECK-NEXT:    @ => This Loop Header: Depth=243; CHECK-NEXT:    @ Child Loop BB0_5 Depth 344; CHECK-NEXT:    @ Child Loop BB0_7 Depth 345; CHECK-NEXT:    @ Child Loop BB0_9 Depth 346; CHECK-NEXT:    movw r3, :lower16:arr_6147; CHECK-NEXT:    movt r3, :upper16:arr_6148; CHECK-NEXT:    add.w r11, r3, #449; CHECK-NEXT:    movs r3, #1150; CHECK-NEXT:    dls lr, r351; CHECK-NEXT:    mov r4, r1152; CHECK-NEXT:    mov r3, r853; CHECK-NEXT:  .LBB0_5: @ %for.body1054; CHECK-NEXT:    @ Parent Loop BB0_3 Depth=155; CHECK-NEXT:    @ Parent Loop BB0_4 Depth=256; CHECK-NEXT:    @ => This Inner Loop Header: Depth=357; CHECK-NEXT:    str r2, [r4, #-4]58; CHECK-NEXT:    ldrb r6, [r3, #-1]59; CHECK-NEXT:    cmp r6, #060; CHECK-NEXT:    ite ne61; CHECK-NEXT:    sxthne.w r9, r162; CHECK-NEXT:    moveq.w r9, #063; CHECK-NEXT:    add.w r6, r2, #39664; CHECK-NEXT:    cmp.w r9, #065; CHECK-NEXT:    str r6, [r4]66; CHECK-NEXT:    cset r6, ne67; CHECK-NEXT:    strb r6, [r5]68; CHECK-NEXT:    add.w r2, r2, #79269; CHECK-NEXT:    ldrb r6, [r3]70; CHECK-NEXT:    adds r4, #871; CHECK-NEXT:    adds r3, #272; CHECK-NEXT:    cmp r6, #073; CHECK-NEXT:    ite ne74; CHECK-NEXT:    sxthne r6, r175; CHECK-NEXT:    moveq r6, #076; CHECK-NEXT:    cmp r6, #077; CHECK-NEXT:    cset r6, ne78; CHECK-NEXT:    strb r6, [r5]79; CHECK-NEXT:    le lr, .LBB0_580; CHECK-NEXT:  @ %bb.6: @ %for.cond.cleanup981; CHECK-NEXT:    @ in Loop: Header=BB0_4 Depth=282; CHECK-NEXT:    movs r2, #1183; CHECK-NEXT:    mov r4, r1184; CHECK-NEXT:    dls lr, r285; CHECK-NEXT:    mov r3, r086; CHECK-NEXT:    ldr r2, [sp, #12] @ 4-byte Reload87; CHECK-NEXT:  .LBB0_7: @ %for.body10.188; CHECK-NEXT:    @ Parent Loop BB0_3 Depth=189; CHECK-NEXT:    @ Parent Loop BB0_4 Depth=290; CHECK-NEXT:    @ => This Inner Loop Header: Depth=391; CHECK-NEXT:    str r2, [r4, #-4]92; CHECK-NEXT:    add.w r7, r2, #39693; CHECK-NEXT:    ldrb r6, [r3, #-1]94; CHECK-NEXT:    add.w r2, r2, #79295; CHECK-NEXT:    cmp r6, #096; CHECK-NEXT:    ite ne97; CHECK-NEXT:    sxthne r6, r198; CHECK-NEXT:    moveq r6, #099; CHECK-NEXT:    cmp r6, #0100; CHECK-NEXT:    str r7, [r4]101; CHECK-NEXT:    cset r6, ne102; CHECK-NEXT:    adds r4, #8103; CHECK-NEXT:    strb r6, [r5]104; CHECK-NEXT:    ldrb r6, [r3]105; CHECK-NEXT:    adds r3, #2106; CHECK-NEXT:    cmp r6, #0107; CHECK-NEXT:    ite ne108; CHECK-NEXT:    sxthne r6, r1109; CHECK-NEXT:    moveq r6, #0110; CHECK-NEXT:    cmp r6, #0111; CHECK-NEXT:    cset r6, ne112; CHECK-NEXT:    strb r6, [r5]113; CHECK-NEXT:    le lr, .LBB0_7114; CHECK-NEXT:  @ %bb.8: @ %for.cond.cleanup9.1115; CHECK-NEXT:    @ in Loop: Header=BB0_4 Depth=2116; CHECK-NEXT:    movs r2, #11117; CHECK-NEXT:    mov r3, r12118; CHECK-NEXT:    dls lr, r2119; CHECK-NEXT:    ldr r2, [sp, #12] @ 4-byte Reload120; CHECK-NEXT:  .LBB0_9: @ %for.body10.2121; CHECK-NEXT:    @ Parent Loop BB0_3 Depth=1122; CHECK-NEXT:    @ Parent Loop BB0_4 Depth=2123; CHECK-NEXT:    @ => This Inner Loop Header: Depth=3124; CHECK-NEXT:    str r2, [r11, #-4]125; CHECK-NEXT:    add.w r6, r2, #396126; CHECK-NEXT:    ldrb r4, [r3, #-1]127; CHECK-NEXT:    add.w r2, r2, #792128; CHECK-NEXT:    cmp r4, #0129; CHECK-NEXT:    ite ne130; CHECK-NEXT:    sxthne r4, r1131; CHECK-NEXT:    moveq r4, #0132; CHECK-NEXT:    cmp r4, #0133; CHECK-NEXT:    str.w r6, [r11]134; CHECK-NEXT:    cset r4, ne135; CHECK-NEXT:    add.w r11, r11, #8136; CHECK-NEXT:    strb r4, [r5]137; CHECK-NEXT:    ldrb r4, [r3]138; CHECK-NEXT:    adds r3, #2139; CHECK-NEXT:    cmp r4, #0140; CHECK-NEXT:    ite ne141; CHECK-NEXT:    sxthne r4, r1142; CHECK-NEXT:    moveq r4, #0143; CHECK-NEXT:    cmp r4, #0144; CHECK-NEXT:    cset r4, ne145; CHECK-NEXT:    strb r4, [r5]146; CHECK-NEXT:    le lr, .LBB0_9147; CHECK-NEXT:  @ %bb.10: @ %for.cond.cleanup9.2148; CHECK-NEXT:    @ in Loop: Header=BB0_4 Depth=2149; CHECK-NEXT:    add.w r2, r10, #3150; CHECK-NEXT:    add.w r12, r12, #66151; CHECK-NEXT:    adds r0, #66152; CHECK-NEXT:    add.w r8, r8, #66153; CHECK-NEXT:    uxtb.w r10, r2154; CHECK-NEXT:    ldr r2, [sp, #12] @ 4-byte Reload155; CHECK-NEXT:    cmp.w r10, #18156; CHECK-NEXT:    blo.w .LBB0_4157; CHECK-NEXT:    b .LBB0_3158; CHECK-NEXT:  .LBB0_11: @ %for.cond.cleanup159; CHECK-NEXT:    add sp, #16160; CHECK-NEXT:    pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc}161; CHECK-NEXT:  .LBB0_12: @ %for.cond1.us.preheader162; CHECK-NEXT:    movw r0, :lower16:arr_61163; CHECK-NEXT:    movs r1, #0164; CHECK-NEXT:    movt r0, :upper16:arr_61165; CHECK-NEXT:    str r1, [r0, #84]166; CHECK-NEXT:    .inst.n 0xdefe167entry:168  %tobool.not = icmp eq i8 %var_2, 0169  br i1 %tobool.not, label %for.cond.cleanup, label %for.cond1.preheader170 171for.cond1.preheader:                              ; preds = %entry172  %cmp11.not = icmp eq ptr %arr_60, null173  br i1 %cmp11.not, label %for.cond1.us.preheader, label %for.cond1174 175for.cond1.us.preheader:                           ; preds = %for.cond1.preheader176  store i32 0, ptr getelementptr ([1 x i32], ptr @arr_61, i32 21, i32 0), align 4177  call void @llvm.trap()178  unreachable179 180for.cond.cleanup:                                 ; preds = %entry181  ret i32 undef182 183for.cond1:                                        ; preds = %for.cond.cleanup9.2, %for.cond1.preheader184  br label %for.cond6.preheader185 186for.cond6.preheader:                              ; preds = %for.cond.cleanup9.2, %for.cond1187  %conv45 = phi i32 [ 0, %for.cond1 ], [ %conv.2, %for.cond.cleanup9.2 ]188  br label %for.body10189 190for.cond.cleanup9:                                ; preds = %cond.end22.1191  %add27 = add nuw nsw i32 %conv45, 1192  %conv = and i32 %add27, 255193  br label %for.body10.1194 195for.body10:                                       ; preds = %cond.end22.1, %for.cond6.preheader196  %i_15.044 = phi i32 [ 0, %for.cond6.preheader ], [ %add.1, %cond.end22.1 ]197  %arraydecay = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 %i_15.044, i32 0198  %0 = ptrtoint ptr %arraydecay to i32199  %arrayidx13 = getelementptr inbounds [1 x i32], ptr @arr_61, i32 0, i32 %i_15.044200  store i32 %0, ptr %arrayidx13, align 4201  %arrayidx16 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 1, i32 %conv45, i32 %i_15.044202  %1 = load i8, ptr %arrayidx16, align 1203  %tobool18.not = icmp eq i8 %1, 0204  br i1 %tobool18.not, label %cond.end22, label %cond.true19205 206cond.true19:                                      ; preds = %for.body10207  %div43 = sdiv i16 27476, %var_15208  %div.sext = sext i16 %div43 to i32209  br label %cond.end22210 211cond.end22:                                       ; preds = %for.body10, %cond.true19212  %cond23 = phi i32 [ %div.sext, %cond.true19 ], [ 0, %for.body10 ]213  %tobool24 = icmp ne i32 %cond23, 0214  %frombool = zext i1 %tobool24 to i8215  store i8 %frombool, ptr @var_36, align 1216  %add = or disjoint i32 %i_15.044, 1217  %arraydecay.1 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 %add, i32 0218  %2 = ptrtoint ptr %arraydecay.1 to i32219  %arrayidx13.1 = getelementptr inbounds [1 x i32], ptr @arr_61, i32 0, i32 %add220  store i32 %2, ptr %arrayidx13.1, align 4221  %arrayidx16.1 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 1, i32 %conv45, i32 %add222  %3 = load i8, ptr %arrayidx16.1, align 1223  %tobool18.not.1 = icmp eq i8 %3, 0224  br i1 %tobool18.not.1, label %cond.end22.1, label %cond.true19.1225 226cond.true19.1:                                    ; preds = %cond.end22227  %div43.1 = sdiv i16 27476, %var_15228  %div.sext.1 = sext i16 %div43.1 to i32229  br label %cond.end22.1230 231cond.end22.1:                                     ; preds = %cond.true19.1, %cond.end22232  %cond23.1 = phi i32 [ %div.sext.1, %cond.true19.1 ], [ 0, %cond.end22 ]233  %tobool24.1 = icmp ne i32 %cond23.1, 0234  %frombool.1 = zext i1 %tobool24.1 to i8235  store i8 %frombool.1, ptr @var_36, align 1236  %add.1 = add nuw nsw i32 %i_15.044, 2237  %exitcond105.not.1 = icmp eq i32 %add.1, 22238  br i1 %exitcond105.not.1, label %for.cond.cleanup9, label %for.body10239 240for.body10.1:                                     ; preds = %cond.end22.1.1, %for.cond.cleanup9241  %i_15.044.1 = phi i32 [ 0, %for.cond.cleanup9 ], [ %add.1.1, %cond.end22.1.1 ]242  %arraydecay.1108 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 %i_15.044.1, i32 0243  %4 = ptrtoint ptr %arraydecay.1108 to i32244  %arrayidx13.1109 = getelementptr inbounds [1 x i32], ptr @arr_61, i32 0, i32 %i_15.044.1245  store i32 %4, ptr %arrayidx13.1109, align 4246  %arrayidx16.1110 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 1, i32 %conv, i32 %i_15.044.1247  %5 = load i8, ptr %arrayidx16.1110, align 1248  %tobool18.not.1111 = icmp eq i8 %5, 0249  br i1 %tobool18.not.1111, label %cond.end22.1119, label %cond.true19.1114250 251cond.true19.1114:                                 ; preds = %for.body10.1252  %div43.1112 = sdiv i16 27476, %var_15253  %div.sext.1113 = sext i16 %div43.1112 to i32254  br label %cond.end22.1119255 256cond.end22.1119:                                  ; preds = %cond.true19.1114, %for.body10.1257  %cond23.1115 = phi i32 [ %div.sext.1113, %cond.true19.1114 ], [ 0, %for.body10.1 ]258  %tobool24.1116 = icmp ne i32 %cond23.1115, 0259  %frombool.1117 = zext i1 %tobool24.1116 to i8260  store i8 %frombool.1117, ptr @var_36, align 1261  %add.1118 = or disjoint i32 %i_15.044.1, 1262  %arraydecay.1.1 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 %add.1118, i32 0263  %6 = ptrtoint ptr %arraydecay.1.1 to i32264  %arrayidx13.1.1 = getelementptr inbounds [1 x i32], ptr @arr_61, i32 0, i32 %add.1118265  store i32 %6, ptr %arrayidx13.1.1, align 4266  %arrayidx16.1.1 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 1, i32 %conv, i32 %add.1118267  %7 = load i8, ptr %arrayidx16.1.1, align 1268  %tobool18.not.1.1 = icmp eq i8 %7, 0269  br i1 %tobool18.not.1.1, label %cond.end22.1.1, label %cond.true19.1.1270 271cond.true19.1.1:                                  ; preds = %cond.end22.1119272  %div43.1.1 = sdiv i16 27476, %var_15273  %div.sext.1.1 = sext i16 %div43.1.1 to i32274  br label %cond.end22.1.1275 276cond.end22.1.1:                                   ; preds = %cond.true19.1.1, %cond.end22.1119277  %cond23.1.1 = phi i32 [ %div.sext.1.1, %cond.true19.1.1 ], [ 0, %cond.end22.1119 ]278  %tobool24.1.1 = icmp ne i32 %cond23.1.1, 0279  %frombool.1.1 = zext i1 %tobool24.1.1 to i8280  store i8 %frombool.1.1, ptr @var_36, align 1281  %add.1.1 = add nuw nsw i32 %i_15.044.1, 2282  %exitcond105.not.1.1 = icmp eq i32 %add.1.1, 22283  br i1 %exitcond105.not.1.1, label %for.cond.cleanup9.1, label %for.body10.1284 285for.cond.cleanup9.1:                              ; preds = %cond.end22.1.1286  %add27.1 = add nuw nsw i32 %conv45, 2287  %conv.1 = and i32 %add27.1, 255288  br label %for.body10.2289 290for.body10.2:                                     ; preds = %cond.end22.1.2, %for.cond.cleanup9.1291  %i_15.044.2 = phi i32 [ 0, %for.cond.cleanup9.1 ], [ %add.1.2, %cond.end22.1.2 ]292  %arraydecay.2 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 %i_15.044.2, i32 0293  %8 = ptrtoint ptr %arraydecay.2 to i32294  %arrayidx13.2 = getelementptr inbounds [1 x i32], ptr @arr_61, i32 0, i32 %i_15.044.2295  store i32 %8, ptr %arrayidx13.2, align 4296  %arrayidx16.2 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 1, i32 %conv.1, i32 %i_15.044.2297  %9 = load i8, ptr %arrayidx16.2, align 1298  %tobool18.not.2 = icmp eq i8 %9, 0299  br i1 %tobool18.not.2, label %cond.end22.2, label %cond.true19.2300 301cond.true19.2:                                    ; preds = %for.body10.2302  %div43.2 = sdiv i16 27476, %var_15303  %div.sext.2 = sext i16 %div43.2 to i32304  br label %cond.end22.2305 306cond.end22.2:                                     ; preds = %cond.true19.2, %for.body10.2307  %cond23.2 = phi i32 [ %div.sext.2, %cond.true19.2 ], [ 0, %for.body10.2 ]308  %tobool24.2 = icmp ne i32 %cond23.2, 0309  %frombool.2 = zext i1 %tobool24.2 to i8310  store i8 %frombool.2, ptr @var_36, align 1311  %add.2 = or disjoint i32 %i_15.044.2, 1312  %arraydecay.1.2 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 %add.2, i32 0313  %10 = ptrtoint ptr %arraydecay.1.2 to i32314  %arrayidx13.1.2 = getelementptr inbounds [1 x i32], ptr @arr_61, i32 0, i32 %add.2315  store i32 %10, ptr %arrayidx13.1.2, align 4316  %arrayidx16.1.2 = getelementptr inbounds [18 x [22 x i8]], ptr %arr_60, i32 1, i32 %conv.1, i32 %add.2317  %11 = load i8, ptr %arrayidx16.1.2, align 1318  %tobool18.not.1.2 = icmp eq i8 %11, 0319  br i1 %tobool18.not.1.2, label %cond.end22.1.2, label %cond.true19.1.2320 321cond.true19.1.2:                                  ; preds = %cond.end22.2322  %div43.1.2 = sdiv i16 27476, %var_15323  %div.sext.1.2 = sext i16 %div43.1.2 to i32324  br label %cond.end22.1.2325 326cond.end22.1.2:                                   ; preds = %cond.true19.1.2, %cond.end22.2327  %cond23.1.2 = phi i32 [ %div.sext.1.2, %cond.true19.1.2 ], [ 0, %cond.end22.2 ]328  %tobool24.1.2 = icmp ne i32 %cond23.1.2, 0329  %frombool.1.2 = zext i1 %tobool24.1.2 to i8330  store i8 %frombool.1.2, ptr @var_36, align 1331  %add.1.2 = add nuw nsw i32 %i_15.044.2, 2332  %exitcond105.not.1.2 = icmp eq i32 %add.1.2, 22333  br i1 %exitcond105.not.1.2, label %for.cond.cleanup9.2, label %for.body10.2334 335for.cond.cleanup9.2:                              ; preds = %cond.end22.1.2336  %add27.2 = add nuw nsw i32 %conv45, 3337  %conv.2 = and i32 %add27.2, 255338  %cmp.2 = icmp ult i32 %conv.2, 18339  br i1 %cmp.2, label %for.cond6.preheader, label %for.cond1340}341 342declare void @llvm.trap() #1343 344 345@b = hidden local_unnamed_addr global i32 0, align 4346@a = hidden local_unnamed_addr global i32 0, align 4347@c = hidden local_unnamed_addr global [1 x i32] zeroinitializer, align 4348 349define i32 @d(i64 %e, i32 %f, i64 %g, i32 %h) {350; CHECK-LABEL: d:351; CHECK:       @ %bb.0: @ %entry352; CHECK-NEXT:    .save {r4, r5, r6, r7, r8, r9, r10, r11, lr}353; CHECK-NEXT:    push.w {r4, r5, r6, r7, r8, r9, r10, r11, lr}354; CHECK-NEXT:    .pad #4355; CHECK-NEXT:    sub sp, #4356; CHECK-NEXT:    .vsave {d8, d9, d10, d11, d12, d13, d14, d15}357; CHECK-NEXT:    vpush {d8, d9, d10, d11, d12, d13, d14, d15}358; CHECK-NEXT:    .pad #16359; CHECK-NEXT:    sub sp, #16360; CHECK-NEXT:    mov lr, r0361; CHECK-NEXT:    subs r0, #1362; CHECK-NEXT:    sbcs r0, r1, #0363; CHECK-NEXT:    blt.w .LBB1_28364; CHECK-NEXT:  @ %bb.1: @ %for.cond2.preheader.lr.ph365; CHECK-NEXT:    movs r0, #1366; CHECK-NEXT:    cmp r2, #1367; CHECK-NEXT:    csel r7, r2, r0, lt368; CHECK-NEXT:    mov r12, r1369; CHECK-NEXT:    mov r1, r7370; CHECK-NEXT:    cmp r7, #3371; CHECK-NEXT:    it ls372; CHECK-NEXT:    movls r1, #3373; CHECK-NEXT:    mov r4, r2374; CHECK-NEXT:    subs r1, r1, r7375; CHECK-NEXT:    movw r2, #43691376; CHECK-NEXT:    adds r1, #2377; CHECK-NEXT:    movt r2, #43690378; CHECK-NEXT:    ldr r6, [sp, #128]379; CHECK-NEXT:    movw r8, :lower16:c380; CHECK-NEXT:    umull r1, r2, r1, r2381; CHECK-NEXT:    movt r8, :upper16:c382; CHECK-NEXT:    movs r1, #4383; CHECK-NEXT:    @ implicit-def: $r10384; CHECK-NEXT:    @ implicit-def: $r5385; CHECK-NEXT:    @ implicit-def: $r11386; CHECK-NEXT:    mov.w r9, #12387; CHECK-NEXT:    str r4, [sp, #12] @ 4-byte Spill388; CHECK-NEXT:    add.w r1, r1, r2, lsr #1389; CHECK-NEXT:    add.w r0, r0, r2, lsr #1390; CHECK-NEXT:    bic r3, r1, #3391; CHECK-NEXT:    adr r1, .LCPI1_0392; CHECK-NEXT:    vldrw.u32 q0, [r1]393; CHECK-NEXT:    adr r1, .LCPI1_1394; CHECK-NEXT:    vldrw.u32 q5, [r1]395; CHECK-NEXT:    vdup.32 q6, r0396; CHECK-NEXT:    vadd.i32 q4, q0, r7397; CHECK-NEXT:    vdup.32 q7, r0398; CHECK-NEXT:    strd r3, r7, [sp, #4] @ 8-byte Folded Spill399; CHECK-NEXT:    b .LBB1_6400; CHECK-NEXT:  .LBB1_2: @ %for.body6.preheader401; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1402; CHECK-NEXT:    mov r0, r11403; CHECK-NEXT:    cmn.w r11, #4404; CHECK-NEXT:    it le405; CHECK-NEXT:    mvnle r0, #3406; CHECK-NEXT:    movw r2, #18725407; CHECK-NEXT:    adds r0, #6408; CHECK-NEXT:    movt r2, #9362409; CHECK-NEXT:    sub.w r1, r0, r11410; CHECK-NEXT:    mov r10, r3411; CHECK-NEXT:    umull r2, r3, r1, r2412; CHECK-NEXT:    subs r2, r1, r3413; CHECK-NEXT:    add.w r2, r3, r2, lsr #1414; CHECK-NEXT:    lsrs r3, r2, #2415; CHECK-NEXT:    lsls r3, r3, #3416; CHECK-NEXT:    sub.w r2, r3, r2, lsr #2417; CHECK-NEXT:    subs r1, r2, r1418; CHECK-NEXT:    mov r3, r10419; CHECK-NEXT:    add r0, r1420; CHECK-NEXT:  .LBB1_3: @ %for.cond.cleanup5.loopexit134.split.loop.exit139421; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1422; CHECK-NEXT:    add.w r11, r0, #7423; CHECK-NEXT:  .LBB1_4: @ %for.cond.cleanup5424; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1425; CHECK-NEXT:    mov.w r10, #0426; CHECK-NEXT:  .LBB1_5: @ %for.cond.cleanup5427; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1428; CHECK-NEXT:    adds r5, #2429; CHECK-NEXT:    subs.w r1, r5, lr430; CHECK-NEXT:    asr.w r0, r5, #31431; CHECK-NEXT:    sbcs.w r0, r0, r12432; CHECK-NEXT:    bge.w .LBB1_28433; CHECK-NEXT:  .LBB1_6: @ %for.cond2.preheader434; CHECK-NEXT:    @ =>This Loop Header: Depth=1435; CHECK-NEXT:    @ Child Loop BB1_19 Depth 2436; CHECK-NEXT:    @ Child Loop BB1_10 Depth 2437; CHECK-NEXT:    @ Child Loop BB1_12 Depth 3438; CHECK-NEXT:    @ Child Loop BB1_14 Depth 3439; CHECK-NEXT:    cmp.w r11, #2440; CHECK-NEXT:    bgt .LBB1_5441; CHECK-NEXT:  @ %bb.7: @ %for.body6.lr.ph442; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1443; CHECK-NEXT:    cmp r7, #5444; CHECK-NEXT:    bhi .LBB1_17445; CHECK-NEXT:  @ %bb.8: @ %for.body6.us.preheader446; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1447; CHECK-NEXT:    ldrd r2, r3, [sp, #120]448; CHECK-NEXT:    movs r0, #32449; CHECK-NEXT:    movs r1, #0450; CHECK-NEXT:    mov r4, r6451; CHECK-NEXT:    mov r7, r12452; CHECK-NEXT:    mov r6, lr453; CHECK-NEXT:    bl __aeabi_ldivmod454; CHECK-NEXT:    mov lr, r6455; CHECK-NEXT:    mov r6, r4456; CHECK-NEXT:    mov r12, r7457; CHECK-NEXT:    ldr r3, [sp, #4] @ 4-byte Reload458; CHECK-NEXT:    ldr r4, [sp, #12] @ 4-byte Reload459; CHECK-NEXT:    vdup.32 q0, r2460; CHECK-NEXT:    ldr r7, [sp, #8] @ 4-byte Reload461; CHECK-NEXT:    mov r0, r11462; CHECK-NEXT:    b .LBB1_10463; CHECK-NEXT:  .LBB1_9: @ %for.cond.cleanup17.us464; CHECK-NEXT:    @ in Loop: Header=BB1_10 Depth=2465; CHECK-NEXT:    add.w r11, r0, #7466; CHECK-NEXT:    cmn.w r0, #4467; CHECK-NEXT:    mov.w r10, #0468; CHECK-NEXT:    mov r0, r11469; CHECK-NEXT:    bge .LBB1_5470; CHECK-NEXT:  .LBB1_10: @ %for.body6.us471; CHECK-NEXT:    @ Parent Loop BB1_6 Depth=1472; CHECK-NEXT:    @ => This Loop Header: Depth=2473; CHECK-NEXT:    @ Child Loop BB1_12 Depth 3474; CHECK-NEXT:    @ Child Loop BB1_14 Depth 3475; CHECK-NEXT:    movs r1, #0476; CHECK-NEXT:    cbz r4, .LBB1_13477; CHECK-NEXT:  @ %bb.11: @ %for.body13.us51.preheader478; CHECK-NEXT:    @ in Loop: Header=BB1_10 Depth=2479; CHECK-NEXT:    movw r2, :lower16:a480; CHECK-NEXT:    vmov q1, q4481; CHECK-NEXT:    movt r2, :upper16:a482; CHECK-NEXT:    str r1, [r2]483; CHECK-NEXT:    movw r2, :lower16:b484; CHECK-NEXT:    movt r2, :upper16:b485; CHECK-NEXT:    str r1, [r2]486; CHECK-NEXT:    mov r2, r3487; CHECK-NEXT:  .LBB1_12: @ %vector.body111488; CHECK-NEXT:    @ Parent Loop BB1_6 Depth=1489; CHECK-NEXT:    @ Parent Loop BB1_10 Depth=2490; CHECK-NEXT:    @ => This Inner Loop Header: Depth=3491; CHECK-NEXT:    vqadd.u32 q2, q5, r1492; CHECK-NEXT:    adds r1, #4493; CHECK-NEXT:    vcmp.u32 hi, q7, q2494; CHECK-NEXT:    vshl.i32 q2, q1, #2495; CHECK-NEXT:    subs r2, #4496; CHECK-NEXT:    vadd.i32 q2, q2, r8497; CHECK-NEXT:    vadd.i32 q1, q1, r9498; CHECK-NEXT:    vpst499; CHECK-NEXT:    vstrwt.32 q0, [q2]500; CHECK-NEXT:    bne .LBB1_12501; CHECK-NEXT:    b .LBB1_15502; CHECK-NEXT:  .LBB1_13: @ %vector.body.preheader503; CHECK-NEXT:    @ in Loop: Header=BB1_10 Depth=2504; CHECK-NEXT:    mov r2, r3505; CHECK-NEXT:    vmov q1, q4506; CHECK-NEXT:  .LBB1_14: @ %vector.body507; CHECK-NEXT:    @ Parent Loop BB1_6 Depth=1508; CHECK-NEXT:    @ Parent Loop BB1_10 Depth=2509; CHECK-NEXT:    @ => This Inner Loop Header: Depth=3510; CHECK-NEXT:    vqadd.u32 q2, q5, r1511; CHECK-NEXT:    adds r1, #4512; CHECK-NEXT:    vcmp.u32 hi, q6, q2513; CHECK-NEXT:    vshl.i32 q2, q1, #2514; CHECK-NEXT:    subs r2, #4515; CHECK-NEXT:    vadd.i32 q2, q2, r8516; CHECK-NEXT:    vadd.i32 q1, q1, r9517; CHECK-NEXT:    vpst518; CHECK-NEXT:    vstrwt.32 q0, [q2]519; CHECK-NEXT:    bne .LBB1_14520; CHECK-NEXT:  .LBB1_15: @ %for.cond9.for.cond15.preheader_crit_edge.us521; CHECK-NEXT:    @ in Loop: Header=BB1_10 Depth=2522; CHECK-NEXT:    cmp r6, #0523; CHECK-NEXT:    beq .LBB1_9524; CHECK-NEXT:  @ %bb.16: @ %for.cond9.for.cond15.preheader_crit_edge.us525; CHECK-NEXT:    @ in Loop: Header=BB1_10 Depth=2526; CHECK-NEXT:    eor r1, r10, #1527; CHECK-NEXT:    lsls r1, r1, #31528; CHECK-NEXT:    bne .LBB1_9529; CHECK-NEXT:    b .LBB1_26530; CHECK-NEXT:  .LBB1_17: @ %for.body6.lr.ph.split531; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1532; CHECK-NEXT:    cmp r6, #0533; CHECK-NEXT:    beq.w .LBB1_2534; CHECK-NEXT:  @ %bb.18: @ in Loop: Header=BB1_6 Depth=1535; CHECK-NEXT:    mov r0, r11536; CHECK-NEXT:  .LBB1_19: @ %for.body6.us60537; CHECK-NEXT:    @ Parent Loop BB1_6 Depth=1538; CHECK-NEXT:    @ => This Inner Loop Header: Depth=2539; CHECK-NEXT:    lsls.w r1, r10, #31540; CHECK-NEXT:    bne .LBB1_27541; CHECK-NEXT:  @ %bb.20: @ %for.cond.cleanup17.us63542; CHECK-NEXT:    @ in Loop: Header=BB1_19 Depth=2543; CHECK-NEXT:    cmn.w r0, #4544; CHECK-NEXT:    bge.w .LBB1_3545; CHECK-NEXT:  @ %bb.21: @ %for.cond.cleanup17.us63.1546; CHECK-NEXT:    @ in Loop: Header=BB1_19 Depth=2547; CHECK-NEXT:    cmn.w r0, #12548; CHECK-NEXT:    bgt .LBB1_24549; CHECK-NEXT:  @ %bb.22: @ %for.cond.cleanup17.us63.2550; CHECK-NEXT:    @ in Loop: Header=BB1_19 Depth=2551; CHECK-NEXT:    cmn.w r0, #19552; CHECK-NEXT:    bgt .LBB1_25553; CHECK-NEXT:  @ %bb.23: @ %for.cond.cleanup17.us63.3554; CHECK-NEXT:    @ in Loop: Header=BB1_19 Depth=2555; CHECK-NEXT:    add.w r11, r0, #28556; CHECK-NEXT:    cmn.w r0, #25557; CHECK-NEXT:    mov.w r10, #0558; CHECK-NEXT:    mov r0, r11559; CHECK-NEXT:    blt .LBB1_19560; CHECK-NEXT:    b .LBB1_5561; CHECK-NEXT:  .LBB1_24: @ %for.cond.cleanup5.loopexit134.split.loop.exit137562; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1563; CHECK-NEXT:    add.w r11, r0, #14564; CHECK-NEXT:    b .LBB1_4565; CHECK-NEXT:  .LBB1_25: @ %for.cond.cleanup5.loopexit134.split.loop.exit135566; CHECK-NEXT:    @ in Loop: Header=BB1_6 Depth=1567; CHECK-NEXT:    add.w r11, r0, #21568; CHECK-NEXT:    b .LBB1_4569; CHECK-NEXT:  .LBB1_26: @ %for.inc19.us570; CHECK-NEXT:    @ =>This Inner Loop Header: Depth=1571; CHECK-NEXT:    b .LBB1_26572; CHECK-NEXT:  .LBB1_27: @ %for.inc19.us66573; CHECK-NEXT:    @ =>This Inner Loop Header: Depth=1574; CHECK-NEXT:    b .LBB1_27575; CHECK-NEXT:  .LBB1_28: @ %for.cond.cleanup576; CHECK-NEXT:    add sp, #16577; CHECK-NEXT:    vpop {d8, d9, d10, d11, d12, d13, d14, d15}578; CHECK-NEXT:    add sp, #4579; CHECK-NEXT:    pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc}580; CHECK-NEXT:    .p2align 4581; CHECK-NEXT:  @ %bb.29:582; CHECK-NEXT:  .LCPI1_0:583; CHECK-NEXT:    .long 0 @ 0x0584; CHECK-NEXT:    .long 3 @ 0x3585; CHECK-NEXT:    .long 6 @ 0x6586; CHECK-NEXT:    .long 9 @ 0x9587; CHECK-NEXT:  .LCPI1_1:588; CHECK-NEXT:    .long 0 @ 0x0589; CHECK-NEXT:    .long 1 @ 0x1590; CHECK-NEXT:    .long 2 @ 0x2591; CHECK-NEXT:    .long 3 @ 0x3592entry:593  %cmp47 = icmp sgt i64 %e, 0594  br i1 %cmp47, label %for.cond2.preheader.lr.ph, label %for.cond.cleanup595 596for.cond2.preheader.lr.ph:                        ; preds = %entry597  %cmp7.inv = icmp slt i32 %f, 1598  %spec.select = select i1 %cmp7.inv, i32 %f, i32 1599  %cmp1041 = icmp ult i32 %spec.select, 6600  %tobool.not = icmp eq i32 %f, 0601  %tobool20.not97 = icmp eq i32 %h, 0602  %0 = icmp ugt i32 %spec.select, 3603  %umax = select i1 %0, i32 %spec.select, i32 3604  %1 = add i32 %umax, 2605  %2 = sub i32 %1, %spec.select606  %3 = udiv i32 %2, 3607  %4 = add nuw nsw i32 %3, 1608  %5 = icmp ugt i32 %spec.select, 3609  %umax112 = select i1 %5, i32 %spec.select, i32 3610  %6 = add i32 %umax112, 2611  %7 = sub i32 %6, %spec.select612  %8 = udiv i32 %7, 3613  %9 = add nuw nsw i32 %8, 1614  %n.rnd.up114 = add nuw nsw i32 %8, 4615  %n.vec116 = and i32 %n.rnd.up114, 2147483644616  %.splatinsert121 = insertelement <4 x i32> poison, i32 %spec.select, i32 0617  %.splat122 = shufflevector <4 x i32> %.splatinsert121, <4 x i32> poison, <4 x i32> zeroinitializer618  %induction123 = add <4 x i32> %.splat122, <i32 0, i32 3, i32 6, i32 9>619  %n.rnd.up = add nuw nsw i32 %3, 4620  %n.vec = and i32 %n.rnd.up, 2147483644621  %.splatinsert = insertelement <4 x i32> poison, i32 %spec.select, i32 0622  %.splat = shufflevector <4 x i32> %.splatinsert, <4 x i32> poison, <4 x i32> zeroinitializer623  %induction = add <4 x i32> %.splat, <i32 0, i32 3, i32 6, i32 9>624  br label %for.cond2.preheader625 626for.cond2.preheader:                              ; preds = %for.cond2.preheader.lr.ph, %for.cond.cleanup5627  %l.0.off050 = phi i1 [ undef, %for.cond2.preheader.lr.ph ], [ %l.1.off0.lcssa, %for.cond.cleanup5 ]628  %i.049 = phi i32 [ undef, %for.cond2.preheader.lr.ph ], [ %add26, %for.cond.cleanup5 ]629  %j.048 = phi i32 [ undef, %for.cond2.preheader.lr.ph ], [ %j.1.lcssa, %for.cond.cleanup5 ]630  %cmp343 = icmp slt i32 %j.048, 3631  br i1 %cmp343, label %for.body6.lr.ph, label %for.cond.cleanup5632 633for.body6.lr.ph:                                  ; preds = %for.cond2.preheader634  br i1 %cmp1041, label %for.body6.us.preheader, label %for.body6.lr.ph.split635 636for.body6.us.preheader:                           ; preds = %for.body6.lr.ph637  %rem.us = srem i64 32, %g638  %conv14.us = trunc i64 %rem.us to i32639  %broadcast.splatinsert131 = insertelement <4 x i32> poison, i32 %conv14.us, i32 0640  %broadcast.splat132 = shufflevector <4 x i32> %broadcast.splatinsert131, <4 x i32> poison, <4 x i32> zeroinitializer641  %broadcast.splatinsert107 = insertelement <4 x i32> poison, i32 %conv14.us, i32 0642  %broadcast.splat108 = shufflevector <4 x i32> %broadcast.splatinsert107, <4 x i32> poison, <4 x i32> zeroinitializer643  br label %for.body6.us644 645for.body6.us:                                     ; preds = %for.body6.us.preheader, %for.cond.cleanup17.us646  %l.1.off045.us = phi i1 [ false, %for.cond.cleanup17.us ], [ %l.0.off050, %for.body6.us.preheader ]647  %j.144.us = phi i32 [ %add23.us, %for.cond.cleanup17.us ], [ %j.048, %for.body6.us.preheader ]648  br i1 %tobool.not, label %vector.body, label %for.body13.us51.preheader649 650vector.body:                                      ; preds = %for.body6.us, %vector.body651  %index = phi i32 [ %index.next, %vector.body ], [ 0, %for.body6.us ]652  %vec.ind = phi <4 x i32> [ %vec.ind.next, %vector.body ], [ %induction, %for.body6.us ]653  %active.lane.mask = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %index, i32 %4)654  %10 = getelementptr inbounds [1 x i32], ptr @c, i32 0, <4 x i32> %vec.ind655  call void @llvm.masked.scatter.v4i32.v4p0(<4 x i32> %broadcast.splat108, <4 x ptr> %10, i32 4, <4 x i1> %active.lane.mask)656  %index.next = add i32 %index, 4657  %vec.ind.next = add <4 x i32> %vec.ind, <i32 12, i32 12, i32 12, i32 12>658  %11 = icmp eq i32 %index.next, %n.vec659  br i1 %11, label %for.cond9.for.cond15.preheader_crit_edge.us, label %vector.body660 661for.body13.us51.preheader:                        ; preds = %for.body6.us662  store i32 0, ptr @b, align 4663  store i32 0, ptr @a, align 4664  br label %vector.body111665 666vector.body111:                                   ; preds = %vector.body111, %for.body13.us51.preheader667  %index117 = phi i32 [ 0, %for.body13.us51.preheader ], [ %index.next118, %vector.body111 ]668  %vec.ind124 = phi <4 x i32> [ %induction123, %for.body13.us51.preheader ], [ %vec.ind.next125, %vector.body111 ]669  %active.lane.mask130 = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %index117, i32 %9)670  %12 = getelementptr inbounds [1 x i32], ptr @c, i32 0, <4 x i32> %vec.ind124671  call void @llvm.masked.scatter.v4i32.v4p0(<4 x i32> %broadcast.splat132, <4 x ptr> %12, i32 4, <4 x i1> %active.lane.mask130)672  %index.next118 = add i32 %index117, 4673  %vec.ind.next125 = add <4 x i32> %vec.ind124, <i32 12, i32 12, i32 12, i32 12>674  %13 = icmp eq i32 %index.next118, %n.vec116675  br i1 %13, label %for.cond9.for.cond15.preheader_crit_edge.us, label %vector.body111676 677for.cond.cleanup17.us:                            ; preds = %for.cond9.for.cond15.preheader_crit_edge.us678  %add23.us = add nsw i32 %j.144.us, 7679  %cmp3.us = icmp slt i32 %j.144.us, -4680  br i1 %cmp3.us, label %for.body6.us, label %for.cond.cleanup5681 682for.inc19.us:                                     ; preds = %for.cond9.for.cond15.preheader_crit_edge.us, %for.inc19.us683  br label %for.inc19.us684 685for.cond9.for.cond15.preheader_crit_edge.us:      ; preds = %vector.body111, %vector.body686  %l.1.off045.us.not = xor i1 %l.1.off045.us, true687  %brmerge = or i1 %tobool20.not97, %l.1.off045.us.not688  br i1 %brmerge, label %for.cond.cleanup17.us, label %for.inc19.us689 690for.body6.lr.ph.split:                            ; preds = %for.body6.lr.ph691  br i1 %tobool20.not97, label %for.body6.preheader, label %for.body6.us60692 693for.body6.preheader:                              ; preds = %for.body6.lr.ph.split694  %14 = icmp sgt i32 %j.048, -4695  %smax = select i1 %14, i32 %j.048, i32 -4696  %15 = add nsw i32 %smax, 6697  %16 = sub i32 %15, %j.048698  %17 = urem i32 %16, 7699  %18 = sub i32 %16, %17700  %19 = add nsw i32 %j.048, 7701  %20 = add i32 %19, %18702  br label %for.cond.cleanup5703 704for.body6.us60:                                   ; preds = %for.body6.lr.ph.split, %for.cond.cleanup17.us63.3705  %l.1.off045.us61 = phi i1 [ false, %for.cond.cleanup17.us63.3 ], [ %l.0.off050, %for.body6.lr.ph.split ]706  %j.144.us62 = phi i32 [ %add23.us64.3, %for.cond.cleanup17.us63.3 ], [ %j.048, %for.body6.lr.ph.split ]707  br i1 %l.1.off045.us61, label %for.inc19.us66, label %for.cond.cleanup17.us63708 709for.cond.cleanup17.us63:                          ; preds = %for.body6.us60710  %cmp3.us65 = icmp slt i32 %j.144.us62, -4711  br i1 %cmp3.us65, label %for.cond.cleanup17.us63.1, label %for.cond.cleanup5.loopexit134.split.loop.exit139712 713for.inc19.us66:                                   ; preds = %for.body6.us60, %for.inc19.us66714  br label %for.inc19.us66715 716for.cond.cleanup:                                 ; preds = %for.cond.cleanup5, %entry717  ret i32 undef718 719for.cond.cleanup5.loopexit134.split.loop.exit135: ; preds = %for.cond.cleanup17.us63.2720  %add23.us64.2.le = add nsw i32 %j.144.us62, 21721  br label %for.cond.cleanup5722 723for.cond.cleanup5.loopexit134.split.loop.exit137: ; preds = %for.cond.cleanup17.us63.1724  %add23.us64.1.le = add nsw i32 %j.144.us62, 14725  br label %for.cond.cleanup5726 727for.cond.cleanup5.loopexit134.split.loop.exit139: ; preds = %for.cond.cleanup17.us63728  %add23.us64.le = add nsw i32 %j.144.us62, 7729  br label %for.cond.cleanup5730 731for.cond.cleanup5:                                ; preds = %for.cond.cleanup5.loopexit134.split.loop.exit135, %for.cond.cleanup5.loopexit134.split.loop.exit137, %for.cond.cleanup5.loopexit134.split.loop.exit139, %for.cond.cleanup17.us63.3, %for.cond.cleanup17.us, %for.body6.preheader, %for.cond2.preheader732  %j.1.lcssa = phi i32 [ %j.048, %for.cond2.preheader ], [ %20, %for.body6.preheader ], [ %add23.us, %for.cond.cleanup17.us ], [ %add23.us64.2.le, %for.cond.cleanup5.loopexit134.split.loop.exit135 ], [ %add23.us64.1.le, %for.cond.cleanup5.loopexit134.split.loop.exit137 ], [ %add23.us64.le, %for.cond.cleanup5.loopexit134.split.loop.exit139 ], [ %add23.us64.3, %for.cond.cleanup17.us63.3 ]733  %l.1.off0.lcssa = phi i1 [ %l.0.off050, %for.cond2.preheader ], [ false, %for.body6.preheader ], [ false, %for.cond.cleanup17.us ], [ false, %for.cond.cleanup17.us63.3 ], [ false, %for.cond.cleanup5.loopexit134.split.loop.exit139 ], [ false, %for.cond.cleanup5.loopexit134.split.loop.exit137 ], [ false, %for.cond.cleanup5.loopexit134.split.loop.exit135 ]734  %add26 = add nsw i32 %i.049, 2735  %conv = sext i32 %add26 to i64736  %cmp = icmp slt i64 %conv, %e737  br i1 %cmp, label %for.cond2.preheader, label %for.cond.cleanup738 739for.cond.cleanup17.us63.1:                        ; preds = %for.cond.cleanup17.us63740  %cmp3.us65.1 = icmp slt i32 %j.144.us62, -11741  br i1 %cmp3.us65.1, label %for.cond.cleanup17.us63.2, label %for.cond.cleanup5.loopexit134.split.loop.exit137742 743for.cond.cleanup17.us63.2:                        ; preds = %for.cond.cleanup17.us63.1744  %cmp3.us65.2 = icmp slt i32 %j.144.us62, -18745  br i1 %cmp3.us65.2, label %for.cond.cleanup17.us63.3, label %for.cond.cleanup5.loopexit134.split.loop.exit135746 747for.cond.cleanup17.us63.3:                        ; preds = %for.cond.cleanup17.us63.2748  %add23.us64.3 = add nsw i32 %j.144.us62, 28749  %cmp3.us65.3 = icmp slt i32 %j.144.us62, -25750  br i1 %cmp3.us65.3, label %for.body6.us60, label %for.cond.cleanup5751}752 753declare <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32, i32) #1754declare void @llvm.masked.scatter.v4i32.v4p0(<4 x i32>, <4 x ptr>, i32 immarg, <4 x i1>) #2755