; EPILOG: exit3:
; EPILOG-NEXT: ret void
; EPILOG: loop_latch:
-; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.1, label %loop_exiting_bb1.1
; EPILOG: loop_exiting_bb1.1:
; EPILOG-NEXT: br i1 false, label %loop_exiting_bb2.1, label %exit1.loopexit
; EPILOG: loop_exiting_bb2.1:
; EPILOG-NEXT: br i1 false, label %loop_latch.1, label %exit3.loopexit
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.2, label %loop_exiting_bb1.2
; EPILOG: loop_exiting_bb1.2:
; EPILOG-NEXT: br i1 false, label %loop_exiting_bb2.2, label %exit1.loopexit
; EPILOG: loop_exiting_bb2.2:
; EPILOG-NEXT: br i1 false, label %loop_latch.2, label %exit3.loopexit
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.3, label %loop_exiting_bb1.3
; EPILOG: loop_exiting_bb1.3:
; EPILOG-NEXT: br i1 false, label %loop_exiting_bb2.3, label %exit1.loopexit
; EPILOG: loop_exiting_bb2.3:
; EPILOG-NEXT: br i1 false, label %loop_latch.3, label %exit3.loopexit
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.4, label %loop_exiting_bb1.4
; EPILOG: loop_exiting_bb1.4:
; EPILOG-NEXT: br i1 false, label %loop_exiting_bb2.4, label %exit1.loopexit
; EPILOG: loop_exiting_bb2.4:
; EPILOG-NEXT: br i1 false, label %loop_latch.4, label %exit3.loopexit
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.5, label %loop_exiting_bb1.5
; EPILOG: loop_exiting_bb1.5:
; EPILOG-NEXT: br i1 false, label %loop_exiting_bb2.5, label %exit1.loopexit
; EPILOG: loop_exiting_bb2.5:
; EPILOG-NEXT: br i1 false, label %loop_latch.5, label %exit3.loopexit
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.6, label %loop_exiting_bb1.6
; EPILOG: loop_exiting_bb1.6:
; EPILOG-NEXT: br i1 false, label %loop_exiting_bb2.6, label %exit1.loopexit
; EPILOG: loop_exiting_bb2.6:
; EPILOG-NEXT: br i1 false, label %loop_latch.6, label %exit3.loopexit
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.7, label %loop_exiting_bb1.7
; EPILOG: loop_exiting_bb1.7:
; EPILOG-NEXT: br i1 false, label %loop_exiting_bb2.7, label %exit1.loopexit
; EPILOG: loop_exiting_bb2.7:
; EPILOG-NEXT: br i1 false, label %loop_latch.7, label %exit3.loopexit
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add i64 %iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %exit2.loopexit.unr-lcssa.loopexit
; EPILOG: exit1.loopexit:
; EPILOG-BLOCK: exit3:
; EPILOG-BLOCK-NEXT: ret void
; EPILOG-BLOCK: loop_latch:
-; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 %cond, label %loop_latch.1, label %loop_exiting_bb1.1
; EPILOG-BLOCK: loop_exiting_bb1.1:
; EPILOG-BLOCK-NEXT: br i1 false, label %loop_exiting_bb2.1, label %exit1.loopexit
; EPILOG-BLOCK: loop_exiting_bb2.1:
; EPILOG-BLOCK-NEXT: br i1 false, label %loop_latch.1, label %exit3.loopexit
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %exit2.loopexit.unr-lcssa.loopexit, !llvm.loop !0
; EPILOG-BLOCK: exit1.loopexit:
; PROLOG: exit3:
; PROLOG-NEXT: ret void
; PROLOG: loop_latch:
-; PROLOG-NEXT: %iv_next = add i64 %iv, 1
; PROLOG-NEXT: br i1 %cond, label %loop_latch.1, label %loop_exiting_bb1.1
; PROLOG: loop_exiting_bb1.1:
; PROLOG-NEXT: br i1 false, label %loop_exiting_bb2.1, label %exit1.loopexit
; PROLOG: loop_exiting_bb2.1:
; PROLOG-NEXT: br i1 false, label %loop_latch.1, label %exit3.loopexit
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add i64 %iv_next, 1
; PROLOG-NEXT: br i1 %cond, label %loop_latch.2, label %loop_exiting_bb1.2
; PROLOG: loop_exiting_bb1.2:
; PROLOG-NEXT: br i1 false, label %loop_exiting_bb2.2, label %exit1.loopexit
; PROLOG: loop_exiting_bb2.2:
; PROLOG-NEXT: br i1 false, label %loop_latch.2, label %exit3.loopexit
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add i64 %iv_next.1, 1
; PROLOG-NEXT: br i1 %cond, label %loop_latch.3, label %loop_exiting_bb1.3
; PROLOG: loop_exiting_bb1.3:
; PROLOG-NEXT: br i1 false, label %loop_exiting_bb2.3, label %exit1.loopexit
; PROLOG: loop_exiting_bb2.3:
; PROLOG-NEXT: br i1 false, label %loop_latch.3, label %exit3.loopexit
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add i64 %iv_next.2, 1
; PROLOG-NEXT: br i1 %cond, label %loop_latch.4, label %loop_exiting_bb1.4
; PROLOG: loop_exiting_bb1.4:
; PROLOG-NEXT: br i1 false, label %loop_exiting_bb2.4, label %exit1.loopexit
; PROLOG: loop_exiting_bb2.4:
; PROLOG-NEXT: br i1 false, label %loop_latch.4, label %exit3.loopexit
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add i64 %iv_next.3, 1
; PROLOG-NEXT: br i1 %cond, label %loop_latch.5, label %loop_exiting_bb1.5
; PROLOG: loop_exiting_bb1.5:
; PROLOG-NEXT: br i1 false, label %loop_exiting_bb2.5, label %exit1.loopexit
; PROLOG: loop_exiting_bb2.5:
; PROLOG-NEXT: br i1 false, label %loop_latch.5, label %exit3.loopexit
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add i64 %iv_next.4, 1
; PROLOG-NEXT: br i1 %cond, label %loop_latch.6, label %loop_exiting_bb1.6
; PROLOG: loop_exiting_bb1.6:
; PROLOG-NEXT: br i1 false, label %loop_exiting_bb2.6, label %exit1.loopexit
; PROLOG: loop_exiting_bb2.6:
; PROLOG-NEXT: br i1 false, label %loop_latch.6, label %exit3.loopexit
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add i64 %iv_next.5, 1
; PROLOG-NEXT: br i1 %cond, label %loop_latch.7, label %loop_exiting_bb1.7
; PROLOG: loop_exiting_bb1.7:
; PROLOG-NEXT: br i1 false, label %loop_exiting_bb2.7, label %exit1.loopexit
; PROLOG: loop_exiting_bb2.7:
; PROLOG-NEXT: br i1 false, label %loop_latch.7, label %exit3.loopexit
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add i64 %iv, 8
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %exit2.loopexit.unr-lcssa
; PROLOG: exit1.loopexit:
; PROLOG-BLOCK: exit3:
; PROLOG-BLOCK-NEXT: ret void
; PROLOG-BLOCK: loop_latch:
-; PROLOG-BLOCK-NEXT: %iv_next = add i64 %iv, 1
; PROLOG-BLOCK-NEXT: br i1 %cond, label %loop_latch.1, label %loop_exiting_bb1.1
; PROLOG-BLOCK: loop_exiting_bb1.1:
; PROLOG-BLOCK-NEXT: br i1 false, label %loop_exiting_bb2.1, label %exit1.loopexit
; PROLOG-BLOCK: loop_exiting_bb2.1:
; PROLOG-BLOCK-NEXT: br i1 false, label %loop_latch.1, label %exit3.loopexit
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %exit2.loopexit.unr-lcssa, !llvm.loop !0
; PROLOG-BLOCK: exit1.loopexit:
; EPILOG-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG: for.exiting_block.1:
; EPILOG-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv.next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.2
; EPILOG: for.exiting_block.2:
; EPILOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; EPILOG-NEXT: %5 = load i32, ptr %arrayidx.2, align 4
; EPILOG-NEXT: %add.2 = add nsw i32 %5, %add.1
-; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv.next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.3
; EPILOG: for.exiting_block.3:
; EPILOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; EPILOG-NEXT: %6 = load i32, ptr %arrayidx.3, align 4
; EPILOG-NEXT: %add.3 = add nsw i32 %6, %add.2
-; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv.next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.4
; EPILOG: for.exiting_block.4:
; EPILOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; EPILOG-NEXT: %7 = load i32, ptr %arrayidx.4, align 4
; EPILOG-NEXT: %add.4 = add nsw i32 %7, %add.3
-; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv.next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv, 5
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.5
; EPILOG: for.exiting_block.5:
; EPILOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; EPILOG-NEXT: %8 = load i32, ptr %arrayidx.5, align 4
; EPILOG-NEXT: %add.5 = add nsw i32 %8, %add.4
-; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv.next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv, 6
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.6
; EPILOG: for.exiting_block.6:
; EPILOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; EPILOG-NEXT: %9 = load i32, ptr %arrayidx.6, align 4
; EPILOG-NEXT: %add.6 = add nsw i32 %9, %add.5
-; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv.next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv, 7
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.7
; EPILOG: for.exiting_block.7:
; EPILOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; EPILOG-NEXT: %10 = load i32, ptr %arrayidx.7, align 4
; EPILOG-NEXT: %add.7 = add nsw i32 %10, %add.6
-; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %for.end.unr-lcssa.loopexit, label %header
; EPILOG: for.end.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-BLOCK-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-BLOCK-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG-BLOCK: for.exiting_block.1:
; EPILOG-BLOCK-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-BLOCK-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-BLOCK-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %for.end.unr-lcssa.loopexit, label %header, !llvm.loop !2
; EPILOG-BLOCK: for.end.unr-lcssa.loopexit:
; PROLOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.2
; PROLOG: for.exiting_block.2:
; PROLOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; PROLOG-NEXT: %6 = load i32, ptr %arrayidx.2, align 4
; PROLOG-NEXT: %add.2 = add nsw i32 %6, %add.1
-; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv.next.1, 1
+; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv, 3
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.3
; PROLOG: for.exiting_block.3:
; PROLOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; PROLOG-NEXT: %7 = load i32, ptr %arrayidx.3, align 4
; PROLOG-NEXT: %add.3 = add nsw i32 %7, %add.2
-; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv.next.2, 1
+; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv, 4
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.4
; PROLOG: for.exiting_block.4:
; PROLOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; PROLOG-NEXT: %8 = load i32, ptr %arrayidx.4, align 4
; PROLOG-NEXT: %add.4 = add nsw i32 %8, %add.3
-; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv.next.3, 1
+; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv, 5
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.5
; PROLOG: for.exiting_block.5:
; PROLOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; PROLOG-NEXT: %9 = load i32, ptr %arrayidx.5, align 4
; PROLOG-NEXT: %add.5 = add nsw i32 %9, %add.4
-; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv.next.4, 1
+; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv, 6
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.6
; PROLOG: for.exiting_block.6:
; PROLOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; PROLOG-NEXT: %10 = load i32, ptr %arrayidx.6, align 4
; PROLOG-NEXT: %add.6 = add nsw i32 %10, %add.5
-; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv.next.5, 1
+; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv, 7
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.7
; PROLOG: for.exiting_block.7:
; PROLOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; PROLOG-NEXT: %11 = load i32, ptr %arrayidx.7, align 4
; PROLOG-NEXT: %add.7 = add nsw i32 %11, %add.6
-; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
+; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
; PROLOG-NEXT: %exitcond.7 = icmp eq i64 %indvars.iv.next.7, %n
; PROLOG-NEXT: br i1 %exitcond.7, label %for.end.unr-lcssa, label %header
; PROLOG: for.end.unr-lcssa:
; PROLOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-BLOCK-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-BLOCK-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-BLOCK-NEXT: %exitcond.1 = icmp eq i64 %indvars.iv.next.1, %n
; PROLOG-BLOCK-NEXT: br i1 %exitcond.1, label %for.end.unr-lcssa, label %header, !llvm.loop !2
; PROLOG-BLOCK: for.end.unr-lcssa:
; EPILOG: exit3:
; EPILOG-NEXT: ret void
; EPILOG: loop_latch:
-; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
; EPILOG-NEXT: %sum.next = add i64 %sum, %add
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 undef, label %loop_latch.1, label %loop_exiting_bb1.1
; EPILOG: loop_exiting_bb1.1:
; EPILOG-NEXT: switch i64 %sum.next, label %loop_latch.1 [
; EPILOG-NEXT: i64 42, label %exit3.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
; EPILOG-NEXT: %sum.next.1 = add i64 %sum.next, %add
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
; EPILOG-NEXT: br i1 undef, label %loop_latch.2, label %loop_exiting_bb1.2
; EPILOG: loop_exiting_bb1.2:
; EPILOG-NEXT: switch i64 %sum.next.1, label %loop_latch.2 [
; EPILOG-NEXT: i64 42, label %exit3.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
; EPILOG-NEXT: %sum.next.2 = add i64 %sum.next.1, %add
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
; EPILOG-NEXT: br i1 undef, label %loop_latch.3, label %loop_exiting_bb1.3
; EPILOG: loop_exiting_bb1.3:
; EPILOG-NEXT: switch i64 %sum.next.2, label %loop_latch.3 [
; EPILOG-NEXT: i64 42, label %exit3.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
; EPILOG-NEXT: %sum.next.3 = add i64 %sum.next.2, %add
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
; EPILOG-NEXT: br i1 undef, label %loop_latch.4, label %loop_exiting_bb1.4
; EPILOG: loop_exiting_bb1.4:
; EPILOG-NEXT: switch i64 %sum.next.3, label %loop_latch.4 [
; EPILOG-NEXT: i64 42, label %exit3.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
; EPILOG-NEXT: %sum.next.4 = add i64 %sum.next.3, %add
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
; EPILOG-NEXT: br i1 undef, label %loop_latch.5, label %loop_exiting_bb1.5
; EPILOG: loop_exiting_bb1.5:
; EPILOG-NEXT: switch i64 %sum.next.4, label %loop_latch.5 [
; EPILOG-NEXT: i64 42, label %exit3.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
; EPILOG-NEXT: %sum.next.5 = add i64 %sum.next.4, %add
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
; EPILOG-NEXT: br i1 undef, label %loop_latch.6, label %loop_exiting_bb1.6
; EPILOG: loop_exiting_bb1.6:
; EPILOG-NEXT: switch i64 %sum.next.5, label %loop_latch.6 [
; EPILOG-NEXT: i64 42, label %exit3.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
; EPILOG-NEXT: %sum.next.6 = add i64 %sum.next.5, %add
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
; EPILOG-NEXT: br i1 undef, label %loop_latch.7, label %loop_exiting_bb1.7
; EPILOG: loop_exiting_bb1.7:
; EPILOG-NEXT: switch i64 %sum.next.6, label %loop_latch.7 [
; EPILOG-NEXT: i64 42, label %exit3.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv_next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv, 8
; EPILOG-NEXT: %sum.next.7 = add i64 %sum.next.6, %add
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %exit2.loopexit.unr-lcssa.loopexit
; EPILOG: exit1.loopexit:
; EPILOG-BLOCK: exit3:
; EPILOG-BLOCK-NEXT: ret void
; EPILOG-BLOCK: loop_latch:
-; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
; EPILOG-BLOCK-NEXT: %sum.next = add i64 %sum, %add
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 undef, label %loop_latch.1, label %loop_exiting_bb1.1
; EPILOG-BLOCK: loop_exiting_bb1.1:
; EPILOG-BLOCK-NEXT: switch i64 %sum.next, label %loop_latch.1 [
; EPILOG-BLOCK-NEXT: i64 42, label %exit3.loopexit
; EPILOG-BLOCK-NEXT: ]
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; EPILOG-BLOCK-NEXT: %sum.next.1 = add i64 %sum.next, %add
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %exit2.loopexit.unr-lcssa.loopexit, !llvm.loop !3
; EPILOG-BLOCK: exit1.loopexit:
; PROLOG: exit3:
; PROLOG-NEXT: ret void
; PROLOG: loop_latch:
-; PROLOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
; PROLOG-NEXT: %sum.next = add i64 %sum, %add
; PROLOG-NEXT: br i1 undef, label %loop_latch.1, label %loop_exiting_bb1.1
; PROLOG: loop_exiting_bb1.1:
; PROLOG-NEXT: i64 42, label %exit3.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
; PROLOG-NEXT: %sum.next.1 = add i64 %sum.next, %add
; PROLOG-NEXT: br i1 undef, label %loop_latch.2, label %loop_exiting_bb1.2
; PROLOG: loop_exiting_bb1.2:
; PROLOG-NEXT: i64 42, label %exit3.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
; PROLOG-NEXT: %sum.next.2 = add i64 %sum.next.1, %add
; PROLOG-NEXT: br i1 undef, label %loop_latch.3, label %loop_exiting_bb1.3
; PROLOG: loop_exiting_bb1.3:
; PROLOG-NEXT: i64 42, label %exit3.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
; PROLOG-NEXT: %sum.next.3 = add i64 %sum.next.2, %add
; PROLOG-NEXT: br i1 undef, label %loop_latch.4, label %loop_exiting_bb1.4
; PROLOG: loop_exiting_bb1.4:
; PROLOG-NEXT: i64 42, label %exit3.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
; PROLOG-NEXT: %sum.next.4 = add i64 %sum.next.3, %add
; PROLOG-NEXT: br i1 undef, label %loop_latch.5, label %loop_exiting_bb1.5
; PROLOG: loop_exiting_bb1.5:
; PROLOG-NEXT: i64 42, label %exit3.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
; PROLOG-NEXT: %sum.next.5 = add i64 %sum.next.4, %add
; PROLOG-NEXT: br i1 undef, label %loop_latch.6, label %loop_exiting_bb1.6
; PROLOG: loop_exiting_bb1.6:
; PROLOG-NEXT: i64 42, label %exit3.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
; PROLOG-NEXT: %sum.next.6 = add i64 %sum.next.5, %add
; PROLOG-NEXT: br i1 undef, label %loop_latch.7, label %loop_exiting_bb1.7
; PROLOG: loop_exiting_bb1.7:
; PROLOG-NEXT: i64 42, label %exit3.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv, 8
; PROLOG-NEXT: %sum.next.7 = add i64 %sum.next.6, %add
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %exit2.loopexit.unr-lcssa
; PROLOG-BLOCK: exit3:
; PROLOG-BLOCK-NEXT: ret void
; PROLOG-BLOCK: loop_latch:
-; PROLOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
; PROLOG-BLOCK-NEXT: %sum.next = add i64 %sum, %add
; PROLOG-BLOCK-NEXT: br i1 undef, label %loop_latch.1, label %loop_exiting_bb1.1
; PROLOG-BLOCK: loop_exiting_bb1.1:
; PROLOG-BLOCK-NEXT: i64 42, label %exit3.loopexit
; PROLOG-BLOCK-NEXT: ]
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; PROLOG-BLOCK-NEXT: %sum.next.1 = add i64 %sum.next, %add
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %exit2.loopexit.unr-lcssa, !llvm.loop !3
; EPILOG-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.1
; EPILOG: for.exiting_block.1:
; EPILOG-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv.next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
; EPILOG-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.2
; EPILOG: for.exiting_block.2:
; EPILOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; EPILOG-NEXT: %5 = load i32, ptr %arrayidx.2, align 4
; EPILOG-NEXT: %add.2 = add nsw i32 %5, %add.1
-; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv.next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
; EPILOG-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.3
; EPILOG: for.exiting_block.3:
; EPILOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; EPILOG-NEXT: %6 = load i32, ptr %arrayidx.3, align 4
; EPILOG-NEXT: %add.3 = add nsw i32 %6, %add.2
-; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv.next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
; EPILOG-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.4
; EPILOG: for.exiting_block.4:
; EPILOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; EPILOG-NEXT: %7 = load i32, ptr %arrayidx.4, align 4
; EPILOG-NEXT: %add.4 = add nsw i32 %7, %add.3
-; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv.next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv, 5
; EPILOG-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.5
; EPILOG: for.exiting_block.5:
; EPILOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; EPILOG-NEXT: %8 = load i32, ptr %arrayidx.5, align 4
; EPILOG-NEXT: %add.5 = add nsw i32 %8, %add.4
-; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv.next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv, 6
; EPILOG-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.6
; EPILOG: for.exiting_block.6:
; EPILOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; EPILOG-NEXT: %9 = load i32, ptr %arrayidx.6, align 4
; EPILOG-NEXT: %add.6 = add nsw i32 %9, %add.5
-; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv.next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv, 7
; EPILOG-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.7
; EPILOG: for.exiting_block.7:
; EPILOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; EPILOG-NEXT: %10 = load i32, ptr %arrayidx.7, align 4
; EPILOG-NEXT: %add.7 = add nsw i32 %10, %add.6
-; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %latchExit.unr-lcssa.loopexit, label %header
; EPILOG: latchExit.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-BLOCK-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-BLOCK-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 %cond, label %latchExit.epilog-lcssa.loopexit, label %for.exiting_block.1
; EPILOG-BLOCK: for.exiting_block.1:
; EPILOG-BLOCK-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-BLOCK-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-BLOCK-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !4
; EPILOG-BLOCK: latchExit.unr-lcssa.loopexit:
; PROLOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-NEXT: br i1 %cond, label %latchExit.unr-lcssa.loopexit, label %for.exiting_block.2
; PROLOG: for.exiting_block.2:
; PROLOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; PROLOG-NEXT: %6 = load i32, ptr %arrayidx.2, align 4
; PROLOG-NEXT: %add.2 = add nsw i32 %6, %add.1
-; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv.next.1, 1
+; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv, 3
; PROLOG-NEXT: br i1 %cond, label %latchExit.unr-lcssa.loopexit, label %for.exiting_block.3
; PROLOG: for.exiting_block.3:
; PROLOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; PROLOG-NEXT: %7 = load i32, ptr %arrayidx.3, align 4
; PROLOG-NEXT: %add.3 = add nsw i32 %7, %add.2
-; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv.next.2, 1
+; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv, 4
; PROLOG-NEXT: br i1 %cond, label %latchExit.unr-lcssa.loopexit, label %for.exiting_block.4
; PROLOG: for.exiting_block.4:
; PROLOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; PROLOG-NEXT: %8 = load i32, ptr %arrayidx.4, align 4
; PROLOG-NEXT: %add.4 = add nsw i32 %8, %add.3
-; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv.next.3, 1
+; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv, 5
; PROLOG-NEXT: br i1 %cond, label %latchExit.unr-lcssa.loopexit, label %for.exiting_block.5
; PROLOG: for.exiting_block.5:
; PROLOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; PROLOG-NEXT: %9 = load i32, ptr %arrayidx.5, align 4
; PROLOG-NEXT: %add.5 = add nsw i32 %9, %add.4
-; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv.next.4, 1
+; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv, 6
; PROLOG-NEXT: br i1 %cond, label %latchExit.unr-lcssa.loopexit, label %for.exiting_block.6
; PROLOG: for.exiting_block.6:
; PROLOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; PROLOG-NEXT: %10 = load i32, ptr %arrayidx.6, align 4
; PROLOG-NEXT: %add.6 = add nsw i32 %10, %add.5
-; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv.next.5, 1
+; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv, 7
; PROLOG-NEXT: br i1 %cond, label %latchExit.unr-lcssa.loopexit, label %for.exiting_block.7
; PROLOG: for.exiting_block.7:
; PROLOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; PROLOG-NEXT: %11 = load i32, ptr %arrayidx.7, align 4
; PROLOG-NEXT: %add.7 = add nsw i32 %11, %add.6
-; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
+; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
; PROLOG-NEXT: %exitcond.7 = icmp eq i64 %indvars.iv.next.7, %n
; PROLOG-NEXT: br i1 %exitcond.7, label %latchExit.unr-lcssa.loopexit, label %header
; PROLOG: latchExit.unr-lcssa.loopexit:
; PROLOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-BLOCK-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-BLOCK-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-BLOCK-NEXT: %exitcond.1 = icmp eq i64 %indvars.iv.next.1, %n
; PROLOG-BLOCK-NEXT: br i1 %exitcond.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !4
; PROLOG-BLOCK: latchExit.unr-lcssa.loopexit:
; EPILOG-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG: for.exiting_block.1:
; EPILOG-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv.next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.2
; EPILOG: for.exiting_block.2:
; EPILOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; EPILOG-NEXT: %5 = load i32, ptr %arrayidx.2, align 4
; EPILOG-NEXT: %add.2 = add nsw i32 %5, %add.1
-; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv.next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.3
; EPILOG: for.exiting_block.3:
; EPILOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; EPILOG-NEXT: %6 = load i32, ptr %arrayidx.3, align 4
; EPILOG-NEXT: %add.3 = add nsw i32 %6, %add.2
-; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv.next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.4
; EPILOG: for.exiting_block.4:
; EPILOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; EPILOG-NEXT: %7 = load i32, ptr %arrayidx.4, align 4
; EPILOG-NEXT: %add.4 = add nsw i32 %7, %add.3
-; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv.next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv, 5
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.5
; EPILOG: for.exiting_block.5:
; EPILOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; EPILOG-NEXT: %8 = load i32, ptr %arrayidx.5, align 4
; EPILOG-NEXT: %add.5 = add nsw i32 %8, %add.4
-; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv.next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv, 6
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.6
; EPILOG: for.exiting_block.6:
; EPILOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; EPILOG-NEXT: %9 = load i32, ptr %arrayidx.6, align 4
; EPILOG-NEXT: %add.6 = add nsw i32 %9, %add.5
-; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv.next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv, 7
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.7
; EPILOG: for.exiting_block.7:
; EPILOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; EPILOG-NEXT: %10 = load i32, ptr %arrayidx.7, align 4
; EPILOG-NEXT: %add.7 = add nsw i32 %10, %add.6
-; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %latchExit.unr-lcssa.loopexit, label %header
; EPILOG: latchExit.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-BLOCK-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-BLOCK-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG-BLOCK: for.exiting_block.1:
; EPILOG-BLOCK-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-BLOCK-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-BLOCK-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !5
; EPILOG-BLOCK: latchExit.unr-lcssa.loopexit:
; PROLOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.2
; PROLOG: for.exiting_block.2:
; PROLOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; PROLOG-NEXT: %6 = load i32, ptr %arrayidx.2, align 4
; PROLOG-NEXT: %add.2 = add nsw i32 %6, %add.1
-; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv.next.1, 1
+; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv, 3
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.3
; PROLOG: for.exiting_block.3:
; PROLOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; PROLOG-NEXT: %7 = load i32, ptr %arrayidx.3, align 4
; PROLOG-NEXT: %add.3 = add nsw i32 %7, %add.2
-; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv.next.2, 1
+; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv, 4
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.4
; PROLOG: for.exiting_block.4:
; PROLOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; PROLOG-NEXT: %8 = load i32, ptr %arrayidx.4, align 4
; PROLOG-NEXT: %add.4 = add nsw i32 %8, %add.3
-; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv.next.3, 1
+; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv, 5
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.5
; PROLOG: for.exiting_block.5:
; PROLOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; PROLOG-NEXT: %9 = load i32, ptr %arrayidx.5, align 4
; PROLOG-NEXT: %add.5 = add nsw i32 %9, %add.4
-; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv.next.4, 1
+; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv, 6
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.6
; PROLOG: for.exiting_block.6:
; PROLOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; PROLOG-NEXT: %10 = load i32, ptr %arrayidx.6, align 4
; PROLOG-NEXT: %add.6 = add nsw i32 %10, %add.5
-; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv.next.5, 1
+; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv, 7
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.7
; PROLOG: for.exiting_block.7:
; PROLOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; PROLOG-NEXT: %11 = load i32, ptr %arrayidx.7, align 4
; PROLOG-NEXT: %add.7 = add nsw i32 %11, %add.6
-; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
+; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
; PROLOG-NEXT: %exitcond.7 = icmp eq i64 %indvars.iv.next.7, %n
; PROLOG-NEXT: br i1 %exitcond.7, label %latchExit.unr-lcssa.loopexit, label %header
; PROLOG: latchExit.unr-lcssa.loopexit:
; PROLOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-BLOCK-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-BLOCK-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-BLOCK-NEXT: %exitcond.1 = icmp eq i64 %indvars.iv.next.1, %n
; PROLOG-BLOCK-NEXT: br i1 %exitcond.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !5
; PROLOG-BLOCK: latchExit.unr-lcssa.loopexit:
; EPILOG-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG: for.exiting_block.1:
; EPILOG-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv.next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.2
; EPILOG: for.exiting_block.2:
; EPILOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; EPILOG-NEXT: %5 = load i32, ptr %arrayidx.2, align 4
; EPILOG-NEXT: %add.2 = add nsw i32 %5, %add.1
-; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv.next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.3
; EPILOG: for.exiting_block.3:
; EPILOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; EPILOG-NEXT: %6 = load i32, ptr %arrayidx.3, align 4
; EPILOG-NEXT: %add.3 = add nsw i32 %6, %add.2
-; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv.next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.4
; EPILOG: for.exiting_block.4:
; EPILOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; EPILOG-NEXT: %7 = load i32, ptr %arrayidx.4, align 4
; EPILOG-NEXT: %add.4 = add nsw i32 %7, %add.3
-; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv.next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv, 5
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.5
; EPILOG: for.exiting_block.5:
; EPILOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; EPILOG-NEXT: %8 = load i32, ptr %arrayidx.5, align 4
; EPILOG-NEXT: %add.5 = add nsw i32 %8, %add.4
-; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv.next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv, 6
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.6
; EPILOG: for.exiting_block.6:
; EPILOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; EPILOG-NEXT: %9 = load i32, ptr %arrayidx.6, align 4
; EPILOG-NEXT: %add.6 = add nsw i32 %9, %add.5
-; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv.next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv, 7
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.7
; EPILOG: for.exiting_block.7:
; EPILOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; EPILOG-NEXT: %10 = load i32, ptr %arrayidx.7, align 4
; EPILOG-NEXT: %add.7 = add nsw i32 %10, %add.6
-; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %latchExit.unr-lcssa.loopexit, label %header
; EPILOG: latchExit.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %3 = load i32, ptr %arrayidx, align 4
; EPILOG-BLOCK-NEXT: %add = add nsw i32 %3, %sum.02
; EPILOG-BLOCK-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG-BLOCK: for.exiting_block.1:
; EPILOG-BLOCK-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-BLOCK-NEXT: %4 = load i32, ptr %arrayidx.1, align 4
; EPILOG-BLOCK-NEXT: %add.1 = add nsw i32 %4, %add
-; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !6
; EPILOG-BLOCK: latchExit.unr-lcssa.loopexit:
; PROLOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.2
; PROLOG: for.exiting_block.2:
; PROLOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; PROLOG-NEXT: %6 = load i32, ptr %arrayidx.2, align 4
; PROLOG-NEXT: %add.2 = add nsw i32 %6, %add.1
-; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv.next.1, 1
+; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv, 3
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.3
; PROLOG: for.exiting_block.3:
; PROLOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; PROLOG-NEXT: %7 = load i32, ptr %arrayidx.3, align 4
; PROLOG-NEXT: %add.3 = add nsw i32 %7, %add.2
-; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv.next.2, 1
+; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv, 4
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.4
; PROLOG: for.exiting_block.4:
; PROLOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; PROLOG-NEXT: %8 = load i32, ptr %arrayidx.4, align 4
; PROLOG-NEXT: %add.4 = add nsw i32 %8, %add.3
-; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv.next.3, 1
+; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv, 5
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.5
; PROLOG: for.exiting_block.5:
; PROLOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; PROLOG-NEXT: %9 = load i32, ptr %arrayidx.5, align 4
; PROLOG-NEXT: %add.5 = add nsw i32 %9, %add.4
-; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv.next.4, 1
+; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv, 6
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.6
; PROLOG: for.exiting_block.6:
; PROLOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; PROLOG-NEXT: %10 = load i32, ptr %arrayidx.6, align 4
; PROLOG-NEXT: %add.6 = add nsw i32 %10, %add.5
-; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv.next.5, 1
+; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv, 7
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.7
; PROLOG: for.exiting_block.7:
; PROLOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; PROLOG-NEXT: %11 = load i32, ptr %arrayidx.7, align 4
; PROLOG-NEXT: %add.7 = add nsw i32 %11, %add.6
-; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
+; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
; PROLOG-NEXT: %exitcond.7 = icmp eq i64 %indvars.iv.next.7, %n
; PROLOG-NEXT: br i1 %exitcond.7, label %latchExit.unr-lcssa.loopexit, label %header
; PROLOG: latchExit.unr-lcssa.loopexit:
; PROLOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-BLOCK-NEXT: %5 = load i32, ptr %arrayidx.1, align 4
; PROLOG-BLOCK-NEXT: %add.1 = add nsw i32 %5, %add
-; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-BLOCK-NEXT: %exitcond.1 = icmp eq i64 %indvars.iv.next.1, %n
; PROLOG-BLOCK-NEXT: br i1 %exitcond.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !6
; PROLOG-BLOCK: latchExit.unr-lcssa.loopexit:
; EPILOG-NEXT: br i1 %cmp, label %latchExit.epilog-lcssa.loopexit, label %latch
; EPILOG: latch:
; EPILOG-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG: for.exiting_block.1:
; EPILOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-NEXT: br i1 %cmp.1, label %latchExit.epilog-lcssa.loopexit, label %latch.1
; EPILOG: latch.1:
-; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv.next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.2
; EPILOG: for.exiting_block.2:
; EPILOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; EPILOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; EPILOG-NEXT: br i1 %cmp.2, label %latchExit.epilog-lcssa.loopexit, label %latch.2
; EPILOG: latch.2:
-; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv.next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.3
; EPILOG: for.exiting_block.3:
; EPILOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; EPILOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; EPILOG-NEXT: br i1 %cmp.3, label %latchExit.epilog-lcssa.loopexit, label %latch.3
; EPILOG: latch.3:
-; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv.next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.4
; EPILOG: for.exiting_block.4:
; EPILOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; EPILOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; EPILOG-NEXT: br i1 %cmp.4, label %latchExit.epilog-lcssa.loopexit, label %latch.4
; EPILOG: latch.4:
-; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv.next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv, 5
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.5
; EPILOG: for.exiting_block.5:
; EPILOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; EPILOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; EPILOG-NEXT: br i1 %cmp.5, label %latchExit.epilog-lcssa.loopexit, label %latch.5
; EPILOG: latch.5:
-; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv.next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv, 6
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.6
; EPILOG: for.exiting_block.6:
; EPILOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; EPILOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; EPILOG-NEXT: br i1 %cmp.6, label %latchExit.epilog-lcssa.loopexit, label %latch.6
; EPILOG: latch.6:
-; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv.next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv, 7
; EPILOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.7
; EPILOG: for.exiting_block.7:
; EPILOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; EPILOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; EPILOG-NEXT: br i1 %cmp.7, label %latchExit.epilog-lcssa.loopexit, label %latch.7
; EPILOG: latch.7:
-; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %latchExit.unr-lcssa.loopexit, label %header
; EPILOG: latchExit.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: br i1 %cmp, label %latchExit.epilog-lcssa.loopexit, label %latch
; EPILOG-BLOCK: latch:
; EPILOG-BLOCK-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG-BLOCK: for.exiting_block.1:
; EPILOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-BLOCK-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-BLOCK-NEXT: br i1 %cmp.1, label %latchExit.epilog-lcssa.loopexit, label %latch.1
; EPILOG-BLOCK: latch.1:
-; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !7
; EPILOG-BLOCK: latchExit.unr-lcssa.loopexit:
; PROLOG-NEXT: %cmp.1 = icmp eq i64 %n, 42
; PROLOG-NEXT: br i1 %cmp.1, label %latchExit.unr-lcssa.loopexit, label %latch.1
; PROLOG: latch.1:
-; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.2
; PROLOG: for.exiting_block.2:
; PROLOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; PROLOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; PROLOG-NEXT: br i1 %cmp.2, label %latchExit.unr-lcssa.loopexit, label %latch.2
; PROLOG: latch.2:
-; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv.next.1, 1
+; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv, 3
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.3
; PROLOG: for.exiting_block.3:
; PROLOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; PROLOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; PROLOG-NEXT: br i1 %cmp.3, label %latchExit.unr-lcssa.loopexit, label %latch.3
; PROLOG: latch.3:
-; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv.next.2, 1
+; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv, 4
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.4
; PROLOG: for.exiting_block.4:
; PROLOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; PROLOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; PROLOG-NEXT: br i1 %cmp.4, label %latchExit.unr-lcssa.loopexit, label %latch.4
; PROLOG: latch.4:
-; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv.next.3, 1
+; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv, 5
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.5
; PROLOG: for.exiting_block.5:
; PROLOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; PROLOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; PROLOG-NEXT: br i1 %cmp.5, label %latchExit.unr-lcssa.loopexit, label %latch.5
; PROLOG: latch.5:
-; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv.next.4, 1
+; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv, 6
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.6
; PROLOG: for.exiting_block.6:
; PROLOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; PROLOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; PROLOG-NEXT: br i1 %cmp.6, label %latchExit.unr-lcssa.loopexit, label %latch.6
; PROLOG: latch.6:
-; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv.next.5, 1
+; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv, 7
; PROLOG-NEXT: br i1 %cond, label %for.exit2.loopexit, label %for.exiting_block.7
; PROLOG: for.exiting_block.7:
; PROLOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; PROLOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; PROLOG-NEXT: br i1 %cmp.7, label %latchExit.unr-lcssa.loopexit, label %latch.7
; PROLOG: latch.7:
-; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
+; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
; PROLOG-NEXT: %exitcond.7 = icmp eq i64 %indvars.iv.next.7, %n
; PROLOG-NEXT: br i1 %exitcond.7, label %latchExit.unr-lcssa.loopexit, label %header
; PROLOG: latchExit.unr-lcssa.loopexit:
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp eq i64 %n, 42
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %latchExit.unr-lcssa.loopexit, label %latch.1
; PROLOG-BLOCK: latch.1:
-; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-BLOCK-NEXT: %exitcond.1 = icmp eq i64 %indvars.iv.next.1, %n
; PROLOG-BLOCK-NEXT: br i1 %exitcond.1, label %latchExit.unr-lcssa.loopexit, label %header, !llvm.loop !7
; PROLOG-BLOCK: latchExit.unr-lcssa.loopexit:
; EPILOG-NEXT: %cmp1 = icmp ult i32 %inc, %N
; EPILOG-NEXT: br i1 %cmp1, label %latch, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch:
-; EPILOG-NEXT: %niter.next = add nuw nsw i32 %niter, 1
-; EPILOG-NEXT: %inc.1 = add nuw nsw i32 %inc, 1
+; EPILOG-NEXT: %inc.1 = add nuw nsw i32 %i4, 2
; EPILOG-NEXT: %cmp1.1 = icmp ult i32 %inc.1, %N
; EPILOG-NEXT: br i1 %cmp1.1, label %latch.1, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch.1:
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i32 %niter.next, 1
-; EPILOG-NEXT: %inc.2 = add nuw nsw i32 %inc.1, 1
+; EPILOG-NEXT: %inc.2 = add nuw nsw i32 %i4, 3
; EPILOG-NEXT: %cmp1.2 = icmp ult i32 %inc.2, %N
; EPILOG-NEXT: br i1 %cmp1.2, label %latch.2, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch.2:
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i32 %niter.next.1, 1
-; EPILOG-NEXT: %inc.3 = add nuw nsw i32 %inc.2, 1
+; EPILOG-NEXT: %inc.3 = add nuw nsw i32 %i4, 4
; EPILOG-NEXT: %cmp1.3 = icmp ult i32 %inc.3, %N
; EPILOG-NEXT: br i1 %cmp1.3, label %latch.3, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch.3:
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i32 %niter.next.2, 1
-; EPILOG-NEXT: %inc.4 = add nuw nsw i32 %inc.3, 1
+; EPILOG-NEXT: %inc.4 = add nuw nsw i32 %i4, 5
; EPILOG-NEXT: %cmp1.4 = icmp ult i32 %inc.4, %N
; EPILOG-NEXT: br i1 %cmp1.4, label %latch.4, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch.4:
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i32 %niter.next.3, 1
-; EPILOG-NEXT: %inc.5 = add nuw nsw i32 %inc.4, 1
+; EPILOG-NEXT: %inc.5 = add nuw nsw i32 %i4, 6
; EPILOG-NEXT: %cmp1.5 = icmp ult i32 %inc.5, %N
; EPILOG-NEXT: br i1 %cmp1.5, label %latch.5, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch.5:
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i32 %niter.next.4, 1
-; EPILOG-NEXT: %inc.6 = add nuw nsw i32 %inc.5, 1
+; EPILOG-NEXT: %inc.6 = add nuw nsw i32 %i4, 7
; EPILOG-NEXT: %cmp1.6 = icmp ult i32 %inc.6, %N
; EPILOG-NEXT: br i1 %cmp1.6, label %latch.6, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch.6:
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i32 %niter.next.5, 1
-; EPILOG-NEXT: %inc.7 = add nuw i32 %inc.6, 1
+; EPILOG-NEXT: %inc.7 = add nuw i32 %i4, 8
; EPILOG-NEXT: %cmp1.7 = icmp ult i32 %inc.7, %N
; EPILOG-NEXT: br i1 %cmp1.7, label %latch.7, label %latchExit.epilog-lcssa.loopexit
; EPILOG: latch.7:
-; EPILOG-NEXT: %niter.next.7 = add nuw i32 %niter.next.6, 1
+; EPILOG-NEXT: %niter.next.7 = add nuw i32 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i32 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %header, label %latchExit.unr-lcssa.loopexit
; EPILOG: latchExit.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %cmp1 = icmp ult i32 %inc, %N
; EPILOG-BLOCK-NEXT: br i1 %cmp1, label %latch, label %latchExit.epilog-lcssa.loopexit
; EPILOG-BLOCK: latch:
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i32 %niter, 1
-; EPILOG-BLOCK-NEXT: %inc.1 = add nuw i32 %inc, 1
+; EPILOG-BLOCK-NEXT: %inc.1 = add nuw i32 %i4, 2
; EPILOG-BLOCK-NEXT: %cmp1.1 = icmp ult i32 %inc.1, %N
; EPILOG-BLOCK-NEXT: br i1 %cmp1.1, label %latch.1, label %latchExit.epilog-lcssa.loopexit
; EPILOG-BLOCK: latch.1:
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add nuw i32 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add nuw i32 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i32 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %header, label %latchExit.unr-lcssa.loopexit, !llvm.loop !8
; EPILOG-BLOCK: latchExit.unr-lcssa.loopexit:
; PROLOG-NEXT: %cmp1 = icmp ult i32 %inc, %N
; PROLOG-NEXT: br i1 %cmp1, label %latch, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch:
-; PROLOG-NEXT: %inc.1 = add nuw i32 %inc, 1
+; PROLOG-NEXT: %inc.1 = add nuw i32 %i4, 2
; PROLOG-NEXT: %cmp1.1 = icmp ult i32 %inc.1, %N
; PROLOG-NEXT: br i1 %cmp1.1, label %latch.1, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch.1:
-; PROLOG-NEXT: %inc.2 = add nuw i32 %inc.1, 1
+; PROLOG-NEXT: %inc.2 = add nuw i32 %i4, 3
; PROLOG-NEXT: %cmp1.2 = icmp ult i32 %inc.2, %N
; PROLOG-NEXT: br i1 %cmp1.2, label %latch.2, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch.2:
-; PROLOG-NEXT: %inc.3 = add nuw i32 %inc.2, 1
+; PROLOG-NEXT: %inc.3 = add nuw i32 %i4, 4
; PROLOG-NEXT: %cmp1.3 = icmp ult i32 %inc.3, %N
; PROLOG-NEXT: br i1 %cmp1.3, label %latch.3, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch.3:
-; PROLOG-NEXT: %inc.4 = add nuw i32 %inc.3, 1
+; PROLOG-NEXT: %inc.4 = add nuw i32 %i4, 5
; PROLOG-NEXT: %cmp1.4 = icmp ult i32 %inc.4, %N
; PROLOG-NEXT: br i1 %cmp1.4, label %latch.4, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch.4:
-; PROLOG-NEXT: %inc.5 = add nuw i32 %inc.4, 1
+; PROLOG-NEXT: %inc.5 = add nuw i32 %i4, 6
; PROLOG-NEXT: %cmp1.5 = icmp ult i32 %inc.5, %N
; PROLOG-NEXT: br i1 %cmp1.5, label %latch.5, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch.5:
-; PROLOG-NEXT: %inc.6 = add nuw i32 %inc.5, 1
+; PROLOG-NEXT: %inc.6 = add nuw i32 %i4, 7
; PROLOG-NEXT: %cmp1.6 = icmp ult i32 %inc.6, %N
; PROLOG-NEXT: br i1 %cmp1.6, label %latch.6, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch.6:
-; PROLOG-NEXT: %inc.7 = add nuw i32 %inc.6, 1
+; PROLOG-NEXT: %inc.7 = add nuw i32 %i4, 8
; PROLOG-NEXT: %cmp1.7 = icmp ult i32 %inc.7, %N
; PROLOG-NEXT: br i1 %cmp1.7, label %latch.7, label %latchExit.unr-lcssa.loopexit
; PROLOG: latch.7:
; PROLOG-BLOCK-NEXT: %cmp1 = icmp ult i32 %inc, %N
; PROLOG-BLOCK-NEXT: br i1 %cmp1, label %latch, label %latchExit.unr-lcssa.loopexit
; PROLOG-BLOCK: latch:
-; PROLOG-BLOCK-NEXT: %inc.1 = add nuw i32 %inc, 1
+; PROLOG-BLOCK-NEXT: %inc.1 = add nuw i32 %i4, 2
; PROLOG-BLOCK-NEXT: %cmp1.1 = icmp ult i32 %inc.1, %N
; PROLOG-BLOCK-NEXT: br i1 %cmp1.1, label %latch.1, label %latchExit.unr-lcssa.loopexit
; PROLOG-BLOCK: latch.1:
; EPILOG: loop_latch:
; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
; EPILOG-NEXT: %sum.next = add i64 %sum, %add
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.1, label %loop_exiting.1
; EPILOG: loop_exiting.1:
; EPILOG-NEXT: %ivy.1 = add i64 %iv_next, %add
; EPILOG-NEXT: i64 42, label %exit1.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
+; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; EPILOG-NEXT: %sum.next.1 = add i64 %sum.next, %add
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.2, label %loop_exiting.2
; EPILOG: loop_exiting.2:
; EPILOG-NEXT: %ivy.2 = add i64 %iv_next.1, %add
; EPILOG-NEXT: i64 42, label %exit1.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
+; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv, 3
; EPILOG-NEXT: %sum.next.2 = add i64 %sum.next.1, %add
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.3, label %loop_exiting.3
; EPILOG: loop_exiting.3:
; EPILOG-NEXT: %ivy.3 = add i64 %iv_next.2, %add
; EPILOG-NEXT: i64 42, label %exit1.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
+; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv, 4
; EPILOG-NEXT: %sum.next.3 = add i64 %sum.next.2, %add
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.4, label %loop_exiting.4
; EPILOG: loop_exiting.4:
; EPILOG-NEXT: %ivy.4 = add i64 %iv_next.3, %add
; EPILOG-NEXT: i64 42, label %exit1.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
+; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv, 5
; EPILOG-NEXT: %sum.next.4 = add i64 %sum.next.3, %add
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.5, label %loop_exiting.5
; EPILOG: loop_exiting.5:
; EPILOG-NEXT: %ivy.5 = add i64 %iv_next.4, %add
; EPILOG-NEXT: i64 42, label %exit1.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
+; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv, 6
; EPILOG-NEXT: %sum.next.5 = add i64 %sum.next.4, %add
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.6, label %loop_exiting.6
; EPILOG: loop_exiting.6:
; EPILOG-NEXT: %ivy.6 = add i64 %iv_next.5, %add
; EPILOG-NEXT: i64 42, label %exit1.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
+; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv, 7
; EPILOG-NEXT: %sum.next.6 = add i64 %sum.next.5, %add
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
; EPILOG-NEXT: br i1 %cond, label %loop_latch.7, label %loop_exiting.7
; EPILOG: loop_exiting.7:
; EPILOG-NEXT: %ivy.7 = add i64 %iv_next.6, %add
; EPILOG-NEXT: i64 42, label %exit1.loopexit
; EPILOG-NEXT: ]
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv_next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv, 8
; EPILOG-NEXT: %sum.next.7 = add i64 %sum.next.6, %add
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %latchexit.unr-lcssa.loopexit
; EPILOG: exit1.loopexit:
; EPILOG-BLOCK: loop_latch:
; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
; EPILOG-BLOCK-NEXT: %sum.next = add i64 %sum, %add
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 %cond, label %loop_latch.1, label %loop_exiting.1
; EPILOG-BLOCK: loop_exiting.1:
; EPILOG-BLOCK-NEXT: %ivy.1 = add i64 %iv_next, %add
; EPILOG-BLOCK-NEXT: i64 42, label %exit1.loopexit
; EPILOG-BLOCK-NEXT: ]
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; EPILOG-BLOCK-NEXT: %sum.next.1 = add i64 %sum.next, %add
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %latchexit.unr-lcssa.loopexit, !llvm.loop !9
; EPILOG-BLOCK: exit1.loopexit:
; PROLOG-NEXT: i64 42, label %exit1.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
+; PROLOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; PROLOG-NEXT: %sum.next.1 = add i64 %sum.next, %add
; PROLOG-NEXT: br i1 %cond, label %loop_latch.2, label %loop_exiting.2
; PROLOG: loop_exiting.2:
; PROLOG-NEXT: i64 42, label %exit1.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
+; PROLOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv, 3
; PROLOG-NEXT: %sum.next.2 = add i64 %sum.next.1, %add
; PROLOG-NEXT: br i1 %cond, label %loop_latch.3, label %loop_exiting.3
; PROLOG: loop_exiting.3:
; PROLOG-NEXT: i64 42, label %exit1.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
+; PROLOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv, 4
; PROLOG-NEXT: %sum.next.3 = add i64 %sum.next.2, %add
; PROLOG-NEXT: br i1 %cond, label %loop_latch.4, label %loop_exiting.4
; PROLOG: loop_exiting.4:
; PROLOG-NEXT: i64 42, label %exit1.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
+; PROLOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv, 5
; PROLOG-NEXT: %sum.next.4 = add i64 %sum.next.3, %add
; PROLOG-NEXT: br i1 %cond, label %loop_latch.5, label %loop_exiting.5
; PROLOG: loop_exiting.5:
; PROLOG-NEXT: i64 42, label %exit1.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
+; PROLOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv, 6
; PROLOG-NEXT: %sum.next.5 = add i64 %sum.next.4, %add
; PROLOG-NEXT: br i1 %cond, label %loop_latch.6, label %loop_exiting.6
; PROLOG: loop_exiting.6:
; PROLOG-NEXT: i64 42, label %exit1.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
+; PROLOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv, 7
; PROLOG-NEXT: %sum.next.6 = add i64 %sum.next.5, %add
; PROLOG-NEXT: br i1 %cond, label %loop_latch.7, label %loop_exiting.7
; PROLOG: loop_exiting.7:
; PROLOG-NEXT: i64 42, label %exit1.loopexit
; PROLOG-NEXT: ]
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add nuw nsw i64 %iv, 8
; PROLOG-NEXT: %sum.next.7 = add i64 %sum.next.6, %add
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %latchexit.unr-lcssa
; PROLOG-BLOCK-NEXT: i64 42, label %exit1.loopexit
; PROLOG-BLOCK-NEXT: ]
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; PROLOG-BLOCK-NEXT: %sum.next.1 = add i64 %sum.next, %add
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %latchexit.unr-lcssa, !llvm.loop !9
; EPILOG-NEXT: %load = load i32, ptr %arrayidx, align 4
; EPILOG-NEXT: %add = add nsw i32 %load, %sum.02
; EPILOG-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG: for.exiting_block.1:
; EPILOG-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-NEXT: %load.1 = load i32, ptr %arrayidx.1, align 4
; EPILOG-NEXT: %add.1 = add nsw i32 %load.1, %add
-; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv.next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.2
; EPILOG: for.exiting_block.2:
; EPILOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; EPILOG-NEXT: %load.2 = load i32, ptr %arrayidx.2, align 4
; EPILOG-NEXT: %add.2 = add nsw i32 %load.2, %add.1
-; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv.next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.3
; EPILOG: for.exiting_block.3:
; EPILOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; EPILOG-NEXT: %load.3 = load i32, ptr %arrayidx.3, align 4
; EPILOG-NEXT: %add.3 = add nsw i32 %load.3, %add.2
-; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv.next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.4
; EPILOG: for.exiting_block.4:
; EPILOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; EPILOG-NEXT: %load.4 = load i32, ptr %arrayidx.4, align 4
; EPILOG-NEXT: %add.4 = add nsw i32 %load.4, %add.3
-; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv.next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %indvars.iv.next.4 = add nuw nsw i64 %indvars.iv, 5
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.5
; EPILOG: for.exiting_block.5:
; EPILOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; EPILOG-NEXT: %load.5 = load i32, ptr %arrayidx.5, align 4
; EPILOG-NEXT: %add.5 = add nsw i32 %load.5, %add.4
-; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv.next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %indvars.iv.next.5 = add nuw nsw i64 %indvars.iv, 6
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.6
; EPILOG: for.exiting_block.6:
; EPILOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; EPILOG-NEXT: %load.6 = load i32, ptr %arrayidx.6, align 4
; EPILOG-NEXT: %add.6 = add nsw i32 %load.6, %add.5
-; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv.next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %indvars.iv.next.6 = add nuw nsw i64 %indvars.iv, 7
; EPILOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.7
; EPILOG: for.exiting_block.7:
; EPILOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; EPILOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; EPILOG-NEXT: %load.7 = load i32, ptr %arrayidx.7, align 4
; EPILOG-NEXT: %add.7 = add nsw i32 %load.7, %add.6
-; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %latch_exit.unr-lcssa.loopexit, label %header
; EPILOG: latch_exit.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %load = load i32, ptr %arrayidx, align 4
; EPILOG-BLOCK-NEXT: %add = add nsw i32 %load, %sum.02
; EPILOG-BLOCK-NEXT: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.1
; EPILOG-BLOCK: for.exiting_block.1:
; EPILOG-BLOCK-NEXT: %cmp.1 = icmp eq i64 %n, 42
; EPILOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; EPILOG-BLOCK-NEXT: %load.1 = load i32, ptr %arrayidx.1, align 4
; EPILOG-BLOCK-NEXT: %add.1 = add nsw i32 %load.1, %add
-; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %latch_exit.unr-lcssa.loopexit, label %header, !llvm.loop !10
; EPILOG-BLOCK: latch_exit.unr-lcssa.loopexit:
; PROLOG-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-NEXT: %load.1 = load i32, ptr %arrayidx.1, align 4
; PROLOG-NEXT: %add.1 = add nsw i32 %load.1, %add
-; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.2
; PROLOG: for.exiting_block.2:
; PROLOG-NEXT: %cmp.2 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.2 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.1
; PROLOG-NEXT: %load.2 = load i32, ptr %arrayidx.2, align 4
; PROLOG-NEXT: %add.2 = add nsw i32 %load.2, %add.1
-; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv.next.1, 1
+; PROLOG-NEXT: %indvars.iv.next.2 = add i64 %indvars.iv, 3
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.3
; PROLOG: for.exiting_block.3:
; PROLOG-NEXT: %cmp.3 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.3 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.2
; PROLOG-NEXT: %load.3 = load i32, ptr %arrayidx.3, align 4
; PROLOG-NEXT: %add.3 = add nsw i32 %load.3, %add.2
-; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv.next.2, 1
+; PROLOG-NEXT: %indvars.iv.next.3 = add i64 %indvars.iv, 4
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.4
; PROLOG: for.exiting_block.4:
; PROLOG-NEXT: %cmp.4 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.4 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.3
; PROLOG-NEXT: %load.4 = load i32, ptr %arrayidx.4, align 4
; PROLOG-NEXT: %add.4 = add nsw i32 %load.4, %add.3
-; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv.next.3, 1
+; PROLOG-NEXT: %indvars.iv.next.4 = add i64 %indvars.iv, 5
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.5
; PROLOG: for.exiting_block.5:
; PROLOG-NEXT: %cmp.5 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.5 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.4
; PROLOG-NEXT: %load.5 = load i32, ptr %arrayidx.5, align 4
; PROLOG-NEXT: %add.5 = add nsw i32 %load.5, %add.4
-; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv.next.4, 1
+; PROLOG-NEXT: %indvars.iv.next.5 = add i64 %indvars.iv, 6
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.6
; PROLOG: for.exiting_block.6:
; PROLOG-NEXT: %cmp.6 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.6 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.5
; PROLOG-NEXT: %load.6 = load i32, ptr %arrayidx.6, align 4
; PROLOG-NEXT: %add.6 = add nsw i32 %load.6, %add.5
-; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv.next.5, 1
+; PROLOG-NEXT: %indvars.iv.next.6 = add i64 %indvars.iv, 7
; PROLOG-NEXT: br i1 false, label %for.exit2.loopexit, label %for.exiting_block.7
; PROLOG: for.exiting_block.7:
; PROLOG-NEXT: %cmp.7 = icmp eq i64 %n, 42
; PROLOG-NEXT: %arrayidx.7 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next.6
; PROLOG-NEXT: %load.7 = load i32, ptr %arrayidx.7, align 4
; PROLOG-NEXT: %add.7 = add nsw i32 %load.7, %add.6
-; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv.next.6, 1
+; PROLOG-NEXT: %indvars.iv.next.7 = add i64 %indvars.iv, 8
; PROLOG-NEXT: %exitcond.7 = icmp eq i64 %indvars.iv.next.7, %n
; PROLOG-NEXT: br i1 %exitcond.7, label %latch_exit.unr-lcssa, label %header
; PROLOG: latch_exit.unr-lcssa:
; PROLOG-BLOCK-NEXT: %arrayidx.1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv.next
; PROLOG-BLOCK-NEXT: %load.1 = load i32, ptr %arrayidx.1, align 4
; PROLOG-BLOCK-NEXT: %add.1 = add nsw i32 %load.1, %add
-; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv.next, 1
+; PROLOG-BLOCK-NEXT: %indvars.iv.next.1 = add i64 %indvars.iv, 2
; PROLOG-BLOCK-NEXT: %exitcond.1 = icmp eq i64 %indvars.iv.next.1, %n
; PROLOG-BLOCK-NEXT: br i1 %exitcond.1, label %latch_exit.unr-lcssa, label %header, !llvm.loop !10
; PROLOG-BLOCK: latch_exit.unr-lcssa:
; EPILOG-NEXT: %niter = phi i64 [ 0, %preheader.new ], [ %niter.next.7, %latch.7 ]
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch
; EPILOG: latch:
-; EPILOG-NEXT: %add = add nuw nsw i64 %i6, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.1
; EPILOG: latch.1:
-; EPILOG-NEXT: %add.1 = add nuw nsw i64 %add, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.2
; EPILOG: latch.2:
-; EPILOG-NEXT: %add.2 = add nuw nsw i64 %add.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.3
; EPILOG: latch.3:
-; EPILOG-NEXT: %add.3 = add nuw nsw i64 %add.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.4
; EPILOG: latch.4:
-; EPILOG-NEXT: %add.4 = add nuw nsw i64 %add.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.5
; EPILOG: latch.5:
-; EPILOG-NEXT: %add.5 = add nuw nsw i64 %add.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.6
; EPILOG: latch.6:
-; EPILOG-NEXT: %add.6 = add nuw nsw i64 %add.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
; EPILOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.7
; EPILOG: latch.7:
-; EPILOG-NEXT: %add.7 = add nuw nsw i64 %add.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %add.7 = add nuw nsw i64 %i6, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %header, label %latchexit.unr-lcssa.loopexit
; EPILOG: latchexit.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %niter = phi i64 [ 0, %preheader.new ], [ %niter.next.1, %latch.1 ]
; EPILOG-BLOCK-NEXT: br i1 false, label %loopexit1.loopexit, label %latch
; EPILOG-BLOCK: latch:
-; EPILOG-BLOCK-NEXT: %add = add nuw nsw i64 %i6, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.1
; EPILOG-BLOCK: latch.1:
-; EPILOG-BLOCK-NEXT: %add.1 = add nuw nsw i64 %add, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %add.1 = add nuw nsw i64 %i6, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %header, label %latchexit.unr-lcssa.loopexit, !llvm.loop !11
; EPILOG-BLOCK: latchexit.unr-lcssa.loopexit:
; PROLOG-NEXT: %i6 = phi i64 [ %i6.unr, %preheader.new ], [ %add.7, %latch.7 ]
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch
; PROLOG: latch:
-; PROLOG-NEXT: %add = add nuw nsw i64 %i6, 1
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.1
; PROLOG: latch.1:
-; PROLOG-NEXT: %add.1 = add nuw nsw i64 %add, 1
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.2
; PROLOG: latch.2:
-; PROLOG-NEXT: %add.2 = add nuw nsw i64 %add.1, 1
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.3
; PROLOG: latch.3:
-; PROLOG-NEXT: %add.3 = add nuw nsw i64 %add.2, 1
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.4
; PROLOG: latch.4:
-; PROLOG-NEXT: %add.4 = add nuw nsw i64 %add.3, 1
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.5
; PROLOG: latch.5:
-; PROLOG-NEXT: %add.5 = add nuw nsw i64 %add.4, 1
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.6
; PROLOG: latch.6:
-; PROLOG-NEXT: %add.6 = add nuw nsw i64 %add.5, 1
; PROLOG-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.7
; PROLOG: latch.7:
-; PROLOG-NEXT: %add.7 = add nuw nsw i64 %add.6, 1
+; PROLOG-NEXT: %add.7 = add nuw nsw i64 %i6, 8
; PROLOG-NEXT: %i9.7 = icmp slt i64 %add.7, %sext
; PROLOG-NEXT: br i1 %i9.7, label %header, label %latchexit.unr-lcssa
; PROLOG: latchexit.unr-lcssa:
; PROLOG-BLOCK-NEXT: %i6 = phi i64 [ %i6.unr, %preheader.new ], [ %add.1, %latch.1 ]
; PROLOG-BLOCK-NEXT: br i1 false, label %loopexit1.loopexit, label %latch
; PROLOG-BLOCK: latch:
-; PROLOG-BLOCK-NEXT: %add = add nuw nsw i64 %i6, 1
; PROLOG-BLOCK-NEXT: br i1 false, label %loopexit1.loopexit, label %latch.1
; PROLOG-BLOCK: latch.1:
-; PROLOG-BLOCK-NEXT: %add.1 = add nuw nsw i64 %add, 1
+; PROLOG-BLOCK-NEXT: %add.1 = add nuw nsw i64 %i6, 2
; PROLOG-BLOCK-NEXT: %i9.1 = icmp slt i64 %add.1, %sext
; PROLOG-BLOCK-NEXT: br i1 %i9.1, label %header, label %latchexit.unr-lcssa, !llvm.loop !11
; PROLOG-BLOCK: latchexit.unr-lcssa:
; EPILOG: innerH:
; EPILOG-NEXT: %i3 = phi i64 [ %i, %outerloop.new ], [ %i4.7, %latch.7 ]
; EPILOG-NEXT: %niter = phi i64 [ 0, %outerloop.new ], [ %niter.next.7, %latch.7 ]
-; EPILOG-NEXT: %i4 = add nuw nsw i64 %i3, 1
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch
; EPILOG: latch:
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
-; EPILOG-NEXT: %i4.1 = add nuw nsw i64 %i4, 1
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.1
; EPILOG: latch.1:
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
-; EPILOG-NEXT: %i4.2 = add nuw nsw i64 %i4.1, 1
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.2
; EPILOG: latch.2:
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
-; EPILOG-NEXT: %i4.3 = add nuw nsw i64 %i4.2, 1
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.3
; EPILOG: latch.3:
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
-; EPILOG-NEXT: %i4.4 = add nuw nsw i64 %i4.3, 1
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.4
; EPILOG: latch.4:
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
-; EPILOG-NEXT: %i4.5 = add nuw nsw i64 %i4.4, 1
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.5
; EPILOG: latch.5:
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
-; EPILOG-NEXT: %i4.6 = add nuw nsw i64 %i4.5, 1
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.6
; EPILOG: latch.6:
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
-; EPILOG-NEXT: %i4.7 = add nuw nsw i64 %i4.6, 1
+; EPILOG-NEXT: %i4.7 = add nuw nsw i64 %i3, 8
; EPILOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.7
; EPILOG: latch.7:
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %innerH, label %exit.unr-lcssa.loopexit
; EPILOG: exit.unr-lcssa.loopexit:
; EPILOG-BLOCK: innerH.1:
; EPILOG-BLOCK-NEXT: %i3.1 = phi i64 [ 0, %outerloop.new.1 ], [ %i4.1.1, %latch.1.1 ]
; EPILOG-BLOCK-NEXT: %niter.1 = phi i64 [ 0, %outerloop.new.1 ], [ %niter.next.1.1, %latch.1.1 ]
-; EPILOG-BLOCK-NEXT: %i4.12 = add nuw nsw i64 %i3.1, 1
-; EPILOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit.1, label %latch.14
-; EPILOG-BLOCK: latch.14:
-; EPILOG-BLOCK-NEXT: %niter.next.13 = add nuw nsw i64 %niter.1, 1
-; EPILOG-BLOCK-NEXT: %i4.1.1 = add nuw nsw i64 %i4.12, 1
+; EPILOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit.1, label %latch.12
+; EPILOG-BLOCK: latch.12:
+; EPILOG-BLOCK-NEXT: %i4.1.1 = add nuw nsw i64 %i3.1, 2
; EPILOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit.1, label %latch.1.1
; EPILOG-BLOCK: latch.1.1:
-; EPILOG-BLOCK-NEXT: %niter.next.1.1 = add i64 %niter.next.13, 1
+; EPILOG-BLOCK-NEXT: %niter.next.1.1 = add i64 %niter.1, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1.1 = icmp ne i64 %niter.next.1.1, 100
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1.1, label %innerH.1, label %exit.unr-lcssa.loopexit.1, !llvm.loop !12
; EPILOG-BLOCK: exit.unr-lcssa.loopexit.1:
; EPILOG-BLOCK: innerH:
; EPILOG-BLOCK-NEXT: %i3 = phi i64 [ %i, %outerloop.new ], [ %i4.1, %latch.1 ]
; EPILOG-BLOCK-NEXT: %niter = phi i64 [ 0, %outerloop.new ], [ %niter.next.1, %latch.1 ]
-; EPILOG-BLOCK-NEXT: %i4 = add nuw nsw i64 %i3, 1
; EPILOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch
; EPILOG-BLOCK: latch:
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
-; EPILOG-BLOCK-NEXT: %i4.1 = add nuw nsw i64 %i4, 1
+; EPILOG-BLOCK-NEXT: %i4.1 = add nuw nsw i64 %i3, 2
; EPILOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.1
; EPILOG-BLOCK: latch.1:
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %innerH, label %exit.unr-lcssa.loopexit, !llvm.loop !12
; EPILOG-BLOCK: exit.unr-lcssa.loopexit:
; PROLOG-NEXT: br label %innerH
; PROLOG: innerH:
; PROLOG-NEXT: %i3 = phi i64 [ %i3.unr, %outerloop.new ], [ %i4.7, %latch.7 ]
-; PROLOG-NEXT: %i4 = add nuw nsw i64 %i3, 1
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch
; PROLOG: latch:
-; PROLOG-NEXT: %i4.1 = add nuw nsw i64 %i4, 1
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.1
; PROLOG: latch.1:
-; PROLOG-NEXT: %i4.2 = add nuw nsw i64 %i4.1, 1
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.2
; PROLOG: latch.2:
-; PROLOG-NEXT: %i4.3 = add nuw nsw i64 %i4.2, 1
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.3
; PROLOG: latch.3:
-; PROLOG-NEXT: %i4.4 = add nuw nsw i64 %i4.3, 1
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.4
; PROLOG: latch.4:
-; PROLOG-NEXT: %i4.5 = add nuw nsw i64 %i4.4, 1
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.5
; PROLOG: latch.5:
-; PROLOG-NEXT: %i4.6 = add nuw nsw i64 %i4.5, 1
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.6
; PROLOG: latch.6:
-; PROLOG-NEXT: %i4.7 = add nuw nsw i64 %i4.6, 1
+; PROLOG-NEXT: %i4.7 = add nuw nsw i64 %i3, 8
; PROLOG-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.7
; PROLOG: latch.7:
; PROLOG-NEXT: %i6.7 = icmp ult i64 %i4.7, 100
; PROLOG-BLOCK-NEXT: br label %innerH.1
; PROLOG-BLOCK: innerH.1:
; PROLOG-BLOCK-NEXT: %i3.1 = phi i64 [ %i3.unr.1, %outerloop.new.1 ], [ %i4.1.1, %latch.1.1 ]
-; PROLOG-BLOCK-NEXT: %i4.11 = add nuw nsw i64 %i3.1, 1
-; PROLOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit.1, label %latch.12
-; PROLOG-BLOCK: latch.12:
-; PROLOG-BLOCK-NEXT: %i4.1.1 = add nuw nsw i64 %i4.11, 1
+; PROLOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit.1, label %latch.11
+; PROLOG-BLOCK: latch.11:
+; PROLOG-BLOCK-NEXT: %i4.1.1 = add nuw nsw i64 %i3.1, 2
; PROLOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit.1, label %latch.1.1
; PROLOG-BLOCK: latch.1.1:
; PROLOG-BLOCK-NEXT: %i6.1.1 = icmp ult i64 %i4.1.1, 100
-; PROLOG-BLOCK-NEXT: br i1 %i6.1.1, label %innerH.1, label %exit.unr-lcssa.loopexit3, !llvm.loop !12
+; PROLOG-BLOCK-NEXT: br i1 %i6.1.1, label %innerH.1, label %exit.unr-lcssa.loopexit2, !llvm.loop !12
; PROLOG-BLOCK: outerloop.loopexit.loopexit.1:
; PROLOG-BLOCK-NEXT: br label %outerloop.loopexit.1
; PROLOG-BLOCK: outerloop.loopexit.1:
; PROLOG-BLOCK-NEXT: br label %innerH
; PROLOG-BLOCK: innerH:
; PROLOG-BLOCK-NEXT: %i3 = phi i64 [ %i3.unr, %outerloop.new ], [ %i4.1, %latch.1 ]
-; PROLOG-BLOCK-NEXT: %i4 = add nuw nsw i64 %i3, 1
; PROLOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch
; PROLOG-BLOCK: latch:
-; PROLOG-BLOCK-NEXT: %i4.1 = add nuw nsw i64 %i4, 1
+; PROLOG-BLOCK-NEXT: %i4.1 = add nuw nsw i64 %i3, 2
; PROLOG-BLOCK-NEXT: br i1 false, label %outerloop.loopexit.loopexit, label %latch.1
; PROLOG-BLOCK: latch.1:
; PROLOG-BLOCK-NEXT: %i6.1 = icmp ult i64 %i4.1, 100
; PROLOG-BLOCK-NEXT: br i1 %i6.1, label %innerH, label %exit.unr-lcssa.loopexit, !llvm.loop !12
; PROLOG-BLOCK: exit.unr-lcssa.loopexit:
; PROLOG-BLOCK-NEXT: br label %exit.unr-lcssa
-; PROLOG-BLOCK: exit.unr-lcssa.loopexit3:
+; PROLOG-BLOCK: exit.unr-lcssa.loopexit2:
; PROLOG-BLOCK-NEXT: br label %exit.unr-lcssa
; PROLOG-BLOCK: exit.unr-lcssa:
; PROLOG-BLOCK-NEXT: br label %exit
; EPILOG-NEXT: %i9 = call ptr addrspace(1) @foo(i32 %trip.lcssa)
; EPILOG-NEXT: ret ptr addrspace(1) %i9
; EPILOG: latch:
-; EPILOG-NEXT: %iv.next = add nuw nsw i64 %phi, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i32 %niter, 1
; EPILOG-NEXT: br i1 true, label %latch.1, label %innerexit.loopexit
; EPILOG: latch.1:
-; EPILOG-NEXT: %iv.next.1 = add nuw nsw i64 %iv.next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i32 %niter.next, 1
; EPILOG-NEXT: br i1 true, label %latch.2, label %innerexit.loopexit
; EPILOG: latch.2:
-; EPILOG-NEXT: %iv.next.2 = add nuw nsw i64 %iv.next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i32 %niter.next.1, 1
; EPILOG-NEXT: br i1 true, label %latch.3, label %innerexit.loopexit
; EPILOG: latch.3:
-; EPILOG-NEXT: %iv.next.3 = add nuw nsw i64 %iv.next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i32 %niter.next.2, 1
; EPILOG-NEXT: br i1 true, label %latch.4, label %innerexit.loopexit
; EPILOG: latch.4:
-; EPILOG-NEXT: %iv.next.4 = add nuw nsw i64 %iv.next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i32 %niter.next.3, 1
; EPILOG-NEXT: br i1 true, label %latch.5, label %innerexit.loopexit
; EPILOG: latch.5:
-; EPILOG-NEXT: %iv.next.5 = add nuw nsw i64 %iv.next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i32 %niter.next.4, 1
; EPILOG-NEXT: br i1 true, label %latch.6, label %innerexit.loopexit
; EPILOG: latch.6:
-; EPILOG-NEXT: %iv.next.6 = add nuw nsw i64 %iv.next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i32 %niter.next.5, 1
; EPILOG-NEXT: br i1 true, label %latch.7, label %innerexit.loopexit
; EPILOG: latch.7:
-; EPILOG-NEXT: %iv.next.7 = add nuw nsw i64 %iv.next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i32 %niter.next.6, 1
+; EPILOG-NEXT: %iv.next.7 = add nuw nsw i64 %phi, 8
+; EPILOG-NEXT: %niter.next.7 = add i32 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i32 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %header, label %outerLatch.loopexit.unr-lcssa.loopexit
; EPILOG: outerLatch.loopexit.unr-lcssa.loopexit:
; EPILOG-BLOCK: innerexit.loopexit.loopexit:
; EPILOG-BLOCK-NEXT: %trip.lcssa.ph.ph = phi i32 [ %trip, %latch ], [ %trip, %header ]
; EPILOG-BLOCK-NEXT: br label %innerexit.loopexit
-; EPILOG-BLOCK: innerexit.loopexit.loopexit6:
-; EPILOG-BLOCK-NEXT: %trip.lcssa.ph.ph7 = phi i32 [ %trip.1, %latch.15 ], [ %trip.1, %header.1 ]
+; EPILOG-BLOCK: innerexit.loopexit.loopexit4:
+; EPILOG-BLOCK-NEXT: %trip.lcssa.ph.ph5 = phi i32 [ %trip.1, %latch.13 ], [ %trip.1, %header.1 ]
; EPILOG-BLOCK-NEXT: br label %innerexit.loopexit
; EPILOG-BLOCK: innerexit.loopexit:
-; EPILOG-BLOCK-NEXT: %trip.lcssa.ph = phi i32 [ %trip.lcssa.ph.ph, %innerexit.loopexit.loopexit ], [ %trip.lcssa.ph.ph7, %innerexit.loopexit.loopexit6 ]
+; EPILOG-BLOCK-NEXT: %trip.lcssa.ph = phi i32 [ %trip.lcssa.ph.ph, %innerexit.loopexit.loopexit ], [ %trip.lcssa.ph.ph5, %innerexit.loopexit.loopexit4 ]
; EPILOG-BLOCK-NEXT: br label %innerexit
; EPILOG-BLOCK: innerexit.loopexit1:
; EPILOG-BLOCK-NEXT: %trip.lcssa.ph2 = phi i32 [ %trip, %header.epil ], [ %trip.1, %header.epil.1 ]
; EPILOG-BLOCK-NEXT: %i9 = call ptr addrspace(1) @foo(i32 %trip.lcssa)
; EPILOG-BLOCK-NEXT: ret ptr addrspace(1) %i9
; EPILOG-BLOCK: latch:
-; EPILOG-BLOCK-NEXT: %iv.next = add nuw nsw i64 %phi, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i32 %niter, 1
; EPILOG-BLOCK-NEXT: br i1 true, label %latch.1, label %innerexit.loopexit.loopexit
; EPILOG-BLOCK: latch.1:
-; EPILOG-BLOCK-NEXT: %iv.next.1 = add nuw nsw i64 %iv.next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i32 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %iv.next.1 = add nuw nsw i64 %phi, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i32 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i32 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %header, label %outerLatch.loopexit.unr-lcssa.loopexit, !llvm.loop !14
; EPILOG-BLOCK: outerLatch.loopexit.unr-lcssa.loopexit:
; EPILOG-BLOCK: header.1:
; EPILOG-BLOCK-NEXT: %phi.1 = phi i64 [ 0, %preheader.new.1 ], [ %iv.next.1.1, %latch.1.1 ]
; EPILOG-BLOCK-NEXT: %niter.1 = phi i32 [ 0, %preheader.new.1 ], [ %niter.next.1.1, %latch.1.1 ]
-; EPILOG-BLOCK-NEXT: br i1 true, label %latch.15, label %innerexit.loopexit.loopexit6
-; EPILOG-BLOCK: latch.15:
-; EPILOG-BLOCK-NEXT: %iv.next.13 = add nuw nsw i64 %phi.1, 1
-; EPILOG-BLOCK-NEXT: %niter.next.14 = add nuw nsw i32 %niter.1, 1
-; EPILOG-BLOCK-NEXT: br i1 true, label %latch.1.1, label %innerexit.loopexit.loopexit6
+; EPILOG-BLOCK-NEXT: br i1 true, label %latch.13, label %innerexit.loopexit.loopexit4
+; EPILOG-BLOCK: latch.13:
+; EPILOG-BLOCK-NEXT: br i1 true, label %latch.1.1, label %innerexit.loopexit.loopexit4
; EPILOG-BLOCK: latch.1.1:
-; EPILOG-BLOCK-NEXT: %iv.next.1.1 = add nuw nsw i64 %iv.next.13, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1.1 = add i32 %niter.next.14, 1
+; EPILOG-BLOCK-NEXT: %iv.next.1.1 = add nuw nsw i64 %phi.1, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1.1 = add i32 %niter.1, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1.1 = icmp ne i32 %niter.next.1.1, %unroll_iter.1
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1.1, label %header.1, label %outerLatch.loopexit.unr-lcssa.loopexit.1, !llvm.loop !14
; EPILOG-BLOCK: outerLatch.loopexit.unr-lcssa.loopexit.1:
; PROLOG-NEXT: %i9 = call ptr addrspace(1) @foo(i32 %trip.lcssa)
; PROLOG-NEXT: ret ptr addrspace(1) %i9
; PROLOG: latch:
-; PROLOG-NEXT: %iv.next = add nuw nsw i64 %phi, 1
; PROLOG-NEXT: br i1 true, label %latch.1, label %innerexit.loopexit
; PROLOG: latch.1:
-; PROLOG-NEXT: %iv.next.1 = add nuw nsw i64 %iv.next, 1
; PROLOG-NEXT: br i1 true, label %latch.2, label %innerexit.loopexit
; PROLOG: latch.2:
-; PROLOG-NEXT: %iv.next.2 = add nuw nsw i64 %iv.next.1, 1
; PROLOG-NEXT: br i1 true, label %latch.3, label %innerexit.loopexit
; PROLOG: latch.3:
-; PROLOG-NEXT: %iv.next.3 = add nuw nsw i64 %iv.next.2, 1
; PROLOG-NEXT: br i1 true, label %latch.4, label %innerexit.loopexit
; PROLOG: latch.4:
-; PROLOG-NEXT: %iv.next.4 = add nuw nsw i64 %iv.next.3, 1
; PROLOG-NEXT: br i1 true, label %latch.5, label %innerexit.loopexit
; PROLOG: latch.5:
-; PROLOG-NEXT: %iv.next.5 = add nuw nsw i64 %iv.next.4, 1
; PROLOG-NEXT: br i1 true, label %latch.6, label %innerexit.loopexit
; PROLOG: latch.6:
-; PROLOG-NEXT: %iv.next.6 = add nuw nsw i64 %iv.next.5, 1
+; PROLOG-NEXT: %iv.next.6 = add nuw nsw i64 %phi, 7
; PROLOG-NEXT: %i7.7 = trunc i64 %iv.next.6 to i32
; PROLOG-NEXT: br i1 true, label %latch.7, label %innerexit.loopexit
; PROLOG: latch.7:
; PROLOG-NEXT: %i11.7 = add nsw i32 %i7.7, 1
; PROLOG-NEXT: %innercnd.7 = icmp slt i32 %i11.7, %trip
-; PROLOG-NEXT: %iv.next.7 = add nuw nsw i64 %iv.next.6, 1
+; PROLOG-NEXT: %iv.next.7 = add nuw nsw i64 %phi, 8
; PROLOG-NEXT: br i1 %innercnd.7, label %header, label %outerLatch.loopexit.unr-lcssa
; PROLOG: outerLatch.loopexit.unr-lcssa:
; PROLOG-NEXT: br label %outerLatch.loopexit
; PROLOG-BLOCK: latch.1:
; PROLOG-BLOCK-NEXT: %i11.1 = add nsw i32 %i7.1, 1
; PROLOG-BLOCK-NEXT: %innercnd.1 = icmp slt i32 %i11.1, %trip
-; PROLOG-BLOCK-NEXT: %iv.next.1 = add nuw nsw i64 %iv.next, 1
+; PROLOG-BLOCK-NEXT: %iv.next.1 = add nuw nsw i64 %phi, 2
; PROLOG-BLOCK-NEXT: br i1 %innercnd.1, label %header, label %outerLatch.loopexit.unr-lcssa, !llvm.loop !14
; PROLOG-BLOCK: outerLatch.loopexit.unr-lcssa:
; PROLOG-BLOCK-NEXT: br label %outerLatch.loopexit
; PROLOG-BLOCK: latch.1.1:
; PROLOG-BLOCK-NEXT: %i11.1.1 = add nsw i32 %i7.1.1, 1
; PROLOG-BLOCK-NEXT: %innercnd.1.1 = icmp slt i32 %i11.1.1, %trip.1
-; PROLOG-BLOCK-NEXT: %iv.next.1.1 = add nuw nsw i64 %iv.next.13, 1
+; PROLOG-BLOCK-NEXT: %iv.next.1.1 = add nuw nsw i64 %phi.1, 2
; PROLOG-BLOCK-NEXT: br i1 %innercnd.1.1, label %header.1, label %outerLatch.loopexit.unr-lcssa.1, !llvm.loop !14
; PROLOG-BLOCK: outerLatch.loopexit.unr-lcssa.1:
; PROLOG-BLOCK-NEXT: br label %outerLatch.loopexit.1
; EPILOG-NEXT: br i1 %cmp_early, label %loop_latch, label %exit1.loopexit
; EPILOG: loop_latch:
; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; EPILOG-NEXT: br i1 %cmp_early.1, label %loop_latch.1, label %exit1.loopexit
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.2 = icmp ne i64 %iv_next.1, %trip2
; EPILOG-NEXT: br i1 %cmp_early.2, label %loop_latch.2, label %exit1.loopexit
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv, 3
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.3 = icmp ne i64 %iv_next.2, %trip2
; EPILOG-NEXT: br i1 %cmp_early.3, label %loop_latch.3, label %exit1.loopexit
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv, 4
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.4 = icmp ne i64 %iv_next.3, %trip2
; EPILOG-NEXT: br i1 %cmp_early.4, label %loop_latch.4, label %exit1.loopexit
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv, 5
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.5 = icmp ne i64 %iv_next.4, %trip2
; EPILOG-NEXT: br i1 %cmp_early.5, label %loop_latch.5, label %exit1.loopexit
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv, 6
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.6 = icmp ne i64 %iv_next.5, %trip2
; EPILOG-NEXT: br i1 %cmp_early.6, label %loop_latch.6, label %exit1.loopexit
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv, 7
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.7 = icmp ne i64 %iv_next.6, %trip2
; EPILOG-NEXT: br i1 %cmp_early.7, label %loop_latch.7, label %exit1.loopexit
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add i64 %iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %exit2.unr-lcssa.loopexit
; EPILOG: exit1.loopexit:
; EPILOG-BLOCK-NEXT: br i1 %cmp_early, label %loop_latch, label %exit1.loopexit
; EPILOG-BLOCK: loop_latch:
; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: call void @bar()
; EPILOG-BLOCK-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; EPILOG-BLOCK-NEXT: br i1 %cmp_early.1, label %loop_latch.1, label %exit1.loopexit
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %exit2.unr-lcssa.loopexit, !llvm.loop !16
; EPILOG-BLOCK: exit1.loopexit:
; PROLOG-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; PROLOG-NEXT: br i1 %cmp_early.1, label %loop_latch.1, label %exit1.loopexit
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.2 = icmp ne i64 %iv_next.1, %trip2
; PROLOG-NEXT: br i1 %cmp_early.2, label %loop_latch.2, label %exit1.loopexit
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add i64 %iv_next.1, 1
+; PROLOG-NEXT: %iv_next.2 = add i64 %iv, 3
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.3 = icmp ne i64 %iv_next.2, %trip2
; PROLOG-NEXT: br i1 %cmp_early.3, label %loop_latch.3, label %exit1.loopexit
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add i64 %iv_next.2, 1
+; PROLOG-NEXT: %iv_next.3 = add i64 %iv, 4
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.4 = icmp ne i64 %iv_next.3, %trip2
; PROLOG-NEXT: br i1 %cmp_early.4, label %loop_latch.4, label %exit1.loopexit
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add i64 %iv_next.3, 1
+; PROLOG-NEXT: %iv_next.4 = add i64 %iv, 5
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.5 = icmp ne i64 %iv_next.4, %trip2
; PROLOG-NEXT: br i1 %cmp_early.5, label %loop_latch.5, label %exit1.loopexit
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add i64 %iv_next.4, 1
+; PROLOG-NEXT: %iv_next.5 = add i64 %iv, 6
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.6 = icmp ne i64 %iv_next.5, %trip2
; PROLOG-NEXT: br i1 %cmp_early.6, label %loop_latch.6, label %exit1.loopexit
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add i64 %iv_next.5, 1
+; PROLOG-NEXT: %iv_next.6 = add i64 %iv, 7
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.7 = icmp ne i64 %iv_next.6, %trip2
; PROLOG-NEXT: br i1 %cmp_early.7, label %loop_latch.7, label %exit1.loopexit
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add i64 %iv, 8
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %exit2.unr-lcssa
; PROLOG: exit1.loopexit:
; PROLOG-BLOCK-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; PROLOG-BLOCK-NEXT: br i1 %cmp_early.1, label %loop_latch.1, label %exit1.loopexit
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %exit2.unr-lcssa, !llvm.loop !16
; PROLOG-BLOCK: exit1.loopexit:
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch, label %exit1.loopexit
; EPILOG: loop_latch:
-; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.loopexit
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch.2, label %exit1.loopexit
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch.3, label %exit1.loopexit
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch.4, label %exit1.loopexit
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch.5, label %exit1.loopexit
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch.6, label %exit1.loopexit
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_latch.7, label %exit1.loopexit
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add i64 %iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %exit2.unr-lcssa.loopexit
; EPILOG: exit1.loopexit:
; EPILOG-BLOCK-NEXT: call void @bar()
; EPILOG-BLOCK-NEXT: br i1 %cond, label %loop_latch, label %exit1.loopexit
; EPILOG-BLOCK: loop_latch:
-; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: call void @bar()
; EPILOG-BLOCK-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.loopexit
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %exit2.unr-lcssa.loopexit, !llvm.loop !17
; EPILOG-BLOCK: exit1.loopexit:
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch, label %exit1.loopexit
; PROLOG: loop_latch:
-; PROLOG-NEXT: %iv_next = add i64 %iv, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.loopexit
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add i64 %iv_next, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch.2, label %exit1.loopexit
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add i64 %iv_next.1, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch.3, label %exit1.loopexit
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add i64 %iv_next.2, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch.4, label %exit1.loopexit
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add i64 %iv_next.3, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch.5, label %exit1.loopexit
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add i64 %iv_next.4, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch.6, label %exit1.loopexit
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add i64 %iv_next.5, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_latch.7, label %exit1.loopexit
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add i64 %iv, 8
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %exit2.unr-lcssa
; PROLOG: exit1.loopexit:
; PROLOG-BLOCK-NEXT: call void @bar()
; PROLOG-BLOCK-NEXT: br i1 %cond, label %loop_latch, label %exit1.loopexit
; PROLOG-BLOCK: loop_latch:
-; PROLOG-BLOCK-NEXT: %iv_next = add i64 %iv, 1
; PROLOG-BLOCK-NEXT: call void @bar()
; PROLOG-BLOCK-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.loopexit
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %exit2.unr-lcssa, !llvm.loop !17
; PROLOG-BLOCK: exit1.loopexit:
; EPILOG-NEXT: br i1 %cond, label %loop_latch, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch:
; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; EPILOG-NEXT: br i1 %cmp_early.1, label %loop_exiting_bb2.1, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.1:
; EPILOG-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.2 = icmp ne i64 %iv_next.1, %trip2
; EPILOG-NEXT: br i1 %cmp_early.2, label %loop_exiting_bb2.2, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.2:
; EPILOG-NEXT: br i1 %cond, label %loop_latch.2, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv, 3
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.3 = icmp ne i64 %iv_next.2, %trip2
; EPILOG-NEXT: br i1 %cmp_early.3, label %loop_exiting_bb2.3, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.3:
; EPILOG-NEXT: br i1 %cond, label %loop_latch.3, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv, 4
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.4 = icmp ne i64 %iv_next.3, %trip2
; EPILOG-NEXT: br i1 %cmp_early.4, label %loop_exiting_bb2.4, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.4:
; EPILOG-NEXT: br i1 %cond, label %loop_latch.4, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv, 5
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.5 = icmp ne i64 %iv_next.4, %trip2
; EPILOG-NEXT: br i1 %cmp_early.5, label %loop_exiting_bb2.5, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.5:
; EPILOG-NEXT: br i1 %cond, label %loop_latch.5, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv, 6
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.6 = icmp ne i64 %iv_next.5, %trip2
; EPILOG-NEXT: br i1 %cmp_early.6, label %loop_exiting_bb2.6, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.6:
; EPILOG-NEXT: br i1 %cond, label %loop_latch.6, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv, 7
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.7 = icmp ne i64 %iv_next.6, %trip2
; EPILOG-NEXT: br i1 %cmp_early.7, label %loop_exiting_bb2.7, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.7:
; EPILOG-NEXT: br i1 %cond, label %loop_latch.7, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add i64 %iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %exit1.unr-lcssa.loopexit
; EPILOG: exit1.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: br i1 %cond, label %loop_latch, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_latch:
; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: call void @bar()
; EPILOG-BLOCK-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; EPILOG-BLOCK-NEXT: br i1 %cmp_early.1, label %loop_exiting_bb2.1, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_exiting_bb2.1:
; EPILOG-BLOCK-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %exit1.unr-lcssa.loopexit, !llvm.loop !18
; EPILOG-BLOCK: exit1.unr-lcssa.loopexit:
; PROLOG: loop_exiting_bb2.1:
; PROLOG-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.2 = icmp ne i64 %iv_next.1, %trip2
; PROLOG-NEXT: br i1 %cmp_early.2, label %loop_exiting_bb2.2, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.2:
; PROLOG-NEXT: br i1 %cond, label %loop_latch.2, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add i64 %iv_next.1, 1
+; PROLOG-NEXT: %iv_next.2 = add i64 %iv, 3
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.3 = icmp ne i64 %iv_next.2, %trip2
; PROLOG-NEXT: br i1 %cmp_early.3, label %loop_exiting_bb2.3, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.3:
; PROLOG-NEXT: br i1 %cond, label %loop_latch.3, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add i64 %iv_next.2, 1
+; PROLOG-NEXT: %iv_next.3 = add i64 %iv, 4
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.4 = icmp ne i64 %iv_next.3, %trip2
; PROLOG-NEXT: br i1 %cmp_early.4, label %loop_exiting_bb2.4, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.4:
; PROLOG-NEXT: br i1 %cond, label %loop_latch.4, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add i64 %iv_next.3, 1
+; PROLOG-NEXT: %iv_next.4 = add i64 %iv, 5
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.5 = icmp ne i64 %iv_next.4, %trip2
; PROLOG-NEXT: br i1 %cmp_early.5, label %loop_exiting_bb2.5, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.5:
; PROLOG-NEXT: br i1 %cond, label %loop_latch.5, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add i64 %iv_next.4, 1
+; PROLOG-NEXT: %iv_next.5 = add i64 %iv, 6
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.6 = icmp ne i64 %iv_next.5, %trip2
; PROLOG-NEXT: br i1 %cmp_early.6, label %loop_exiting_bb2.6, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.6:
; PROLOG-NEXT: br i1 %cond, label %loop_latch.6, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add i64 %iv_next.5, 1
+; PROLOG-NEXT: %iv_next.6 = add i64 %iv, 7
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.7 = icmp ne i64 %iv_next.6, %trip2
; PROLOG-NEXT: br i1 %cmp_early.7, label %loop_exiting_bb2.7, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.7:
; PROLOG-NEXT: br i1 %cond, label %loop_latch.7, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add i64 %iv, 8
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %exit1.unr-lcssa.loopexit
; PROLOG: exit1.unr-lcssa.loopexit:
; PROLOG-BLOCK: loop_exiting_bb2.1:
; PROLOG-BLOCK-NEXT: br i1 %cond, label %loop_latch.1, label %exit1.unr-lcssa.loopexit
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %exit1.unr-lcssa.loopexit, !llvm.loop !18
; PROLOG-BLOCK: exit1.unr-lcssa.loopexit:
; EPILOG-NEXT: br i1 %unknown, label %loop_latch, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch:
; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; EPILOG-NEXT: br i1 %cmp_early.1, label %loop_exiting_bb2.1, label %exit1.epilog-lcssa.loopexit
; EPILOG-NEXT: %unknown.1 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
+; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv, 2
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.2 = icmp ne i64 %iv_next.1, %trip2
; EPILOG-NEXT: br i1 %cmp_early.2, label %loop_exiting_bb2.2, label %exit1.epilog-lcssa.loopexit
; EPILOG-NEXT: %unknown.2 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.2, label %loop_latch.2, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
+; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv, 3
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.3 = icmp ne i64 %iv_next.2, %trip2
; EPILOG-NEXT: br i1 %cmp_early.3, label %loop_exiting_bb2.3, label %exit1.epilog-lcssa.loopexit
; EPILOG-NEXT: %unknown.3 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.3, label %loop_latch.3, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
+; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv, 4
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.4 = icmp ne i64 %iv_next.3, %trip2
; EPILOG-NEXT: br i1 %cmp_early.4, label %loop_exiting_bb2.4, label %exit1.epilog-lcssa.loopexit
; EPILOG-NEXT: %unknown.4 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.4, label %loop_latch.4, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
+; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv, 5
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.5 = icmp ne i64 %iv_next.4, %trip2
; EPILOG-NEXT: br i1 %cmp_early.5, label %loop_exiting_bb2.5, label %exit1.epilog-lcssa.loopexit
; EPILOG-NEXT: %unknown.5 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.5, label %loop_latch.5, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
+; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv, 6
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.6 = icmp ne i64 %iv_next.5, %trip2
; EPILOG-NEXT: br i1 %cmp_early.6, label %loop_exiting_bb2.6, label %exit1.epilog-lcssa.loopexit
; EPILOG-NEXT: %unknown.6 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.6, label %loop_latch.6, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
+; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv, 7
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: %cmp_early.7 = icmp ne i64 %iv_next.6, %trip2
; EPILOG-NEXT: br i1 %cmp_early.7, label %loop_exiting_bb2.7, label %exit1.epilog-lcssa.loopexit
; EPILOG-NEXT: %unknown.7 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.7, label %loop_latch.7, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add i64 %iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %exit1.unr-lcssa.loopexit
; EPILOG: exit1.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: br i1 %unknown, label %loop_latch, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_latch:
; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: call void @bar()
; EPILOG-BLOCK-NEXT: %cmp_early.1 = icmp ne i64 %iv_next, %trip2
; EPILOG-BLOCK-NEXT: br i1 %cmp_early.1, label %loop_exiting_bb2.1, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK-NEXT: %unknown.1 = call i1 @unknown_cond()
; EPILOG-BLOCK-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %exit1.unr-lcssa.loopexit, !llvm.loop !19
; EPILOG-BLOCK: exit1.unr-lcssa.loopexit:
; PROLOG-NEXT: %unknown.1 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.2 = icmp ne i64 %iv_next.1, %trip2
; PROLOG-NEXT: br i1 %cmp_early.2, label %loop_exiting_bb2.2, label %exit1.unr-lcssa.loopexit
; PROLOG-NEXT: %unknown.2 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.2, label %loop_latch.2, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add i64 %iv_next.1, 1
+; PROLOG-NEXT: %iv_next.2 = add i64 %iv, 3
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.3 = icmp ne i64 %iv_next.2, %trip2
; PROLOG-NEXT: br i1 %cmp_early.3, label %loop_exiting_bb2.3, label %exit1.unr-lcssa.loopexit
; PROLOG-NEXT: %unknown.3 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.3, label %loop_latch.3, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add i64 %iv_next.2, 1
+; PROLOG-NEXT: %iv_next.3 = add i64 %iv, 4
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.4 = icmp ne i64 %iv_next.3, %trip2
; PROLOG-NEXT: br i1 %cmp_early.4, label %loop_exiting_bb2.4, label %exit1.unr-lcssa.loopexit
; PROLOG-NEXT: %unknown.4 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.4, label %loop_latch.4, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add i64 %iv_next.3, 1
+; PROLOG-NEXT: %iv_next.4 = add i64 %iv, 5
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.5 = icmp ne i64 %iv_next.4, %trip2
; PROLOG-NEXT: br i1 %cmp_early.5, label %loop_exiting_bb2.5, label %exit1.unr-lcssa.loopexit
; PROLOG-NEXT: %unknown.5 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.5, label %loop_latch.5, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add i64 %iv_next.4, 1
+; PROLOG-NEXT: %iv_next.5 = add i64 %iv, 6
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.6 = icmp ne i64 %iv_next.5, %trip2
; PROLOG-NEXT: br i1 %cmp_early.6, label %loop_exiting_bb2.6, label %exit1.unr-lcssa.loopexit
; PROLOG-NEXT: %unknown.6 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.6, label %loop_latch.6, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add i64 %iv_next.5, 1
+; PROLOG-NEXT: %iv_next.6 = add i64 %iv, 7
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: %cmp_early.7 = icmp ne i64 %iv_next.6, %trip2
; PROLOG-NEXT: br i1 %cmp_early.7, label %loop_exiting_bb2.7, label %exit1.unr-lcssa.loopexit
; PROLOG-NEXT: %unknown.7 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.7, label %loop_latch.7, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add i64 %iv, 8
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %exit1.unr-lcssa.loopexit
; PROLOG: exit1.unr-lcssa.loopexit:
; PROLOG-BLOCK-NEXT: %unknown.1 = call i1 @unknown_cond()
; PROLOG-BLOCK-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.unr-lcssa.loopexit
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %exit1.unr-lcssa.loopexit, !llvm.loop !19
; PROLOG-BLOCK: exit1.unr-lcssa.loopexit:
; EPILOG-NEXT: %unknown = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown, label %loop_latch, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch:
-; EPILOG-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_exiting_bb2.1, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.1:
; EPILOG-NEXT: %unknown.1 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.1:
-; EPILOG-NEXT: %iv_next.1 = add nuw nsw i64 %iv_next, 1
-; EPILOG-NEXT: %niter.next.1 = add nuw nsw i64 %niter.next, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_exiting_bb2.2, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.2:
; EPILOG-NEXT: %unknown.2 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.2, label %loop_latch.2, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.2:
-; EPILOG-NEXT: %iv_next.2 = add nuw nsw i64 %iv_next.1, 1
-; EPILOG-NEXT: %niter.next.2 = add nuw nsw i64 %niter.next.1, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_exiting_bb2.3, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.3:
; EPILOG-NEXT: %unknown.3 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.3, label %loop_latch.3, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.3:
-; EPILOG-NEXT: %iv_next.3 = add nuw nsw i64 %iv_next.2, 1
-; EPILOG-NEXT: %niter.next.3 = add nuw nsw i64 %niter.next.2, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_exiting_bb2.4, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.4:
; EPILOG-NEXT: %unknown.4 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.4, label %loop_latch.4, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.4:
-; EPILOG-NEXT: %iv_next.4 = add nuw nsw i64 %iv_next.3, 1
-; EPILOG-NEXT: %niter.next.4 = add nuw nsw i64 %niter.next.3, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_exiting_bb2.5, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.5:
; EPILOG-NEXT: %unknown.5 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.5, label %loop_latch.5, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.5:
-; EPILOG-NEXT: %iv_next.5 = add nuw nsw i64 %iv_next.4, 1
-; EPILOG-NEXT: %niter.next.5 = add nuw nsw i64 %niter.next.4, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_exiting_bb2.6, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.6:
; EPILOG-NEXT: %unknown.6 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.6, label %loop_latch.6, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.6:
-; EPILOG-NEXT: %iv_next.6 = add nuw nsw i64 %iv_next.5, 1
-; EPILOG-NEXT: %niter.next.6 = add nuw nsw i64 %niter.next.5, 1
; EPILOG-NEXT: call void @bar()
; EPILOG-NEXT: br i1 %cond, label %loop_exiting_bb2.7, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_exiting_bb2.7:
; EPILOG-NEXT: %unknown.7 = call i1 @unknown_cond()
; EPILOG-NEXT: br i1 %unknown.7, label %loop_latch.7, label %exit1.epilog-lcssa.loopexit
; EPILOG: loop_latch.7:
-; EPILOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
-; EPILOG-NEXT: %niter.next.7 = add i64 %niter.next.6, 1
+; EPILOG-NEXT: %iv_next.7 = add i64 %iv, 8
+; EPILOG-NEXT: %niter.next.7 = add i64 %niter, 8
; EPILOG-NEXT: %niter.ncmp.7 = icmp ne i64 %niter.next.7, %unroll_iter
; EPILOG-NEXT: br i1 %niter.ncmp.7, label %loop_header, label %exit1.unr-lcssa.loopexit
; EPILOG: exit1.unr-lcssa.loopexit:
; EPILOG-BLOCK-NEXT: %unknown = call i1 @unknown_cond()
; EPILOG-BLOCK-NEXT: br i1 %unknown, label %loop_latch, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_latch:
-; EPILOG-BLOCK-NEXT: %iv_next = add nuw nsw i64 %iv, 1
-; EPILOG-BLOCK-NEXT: %niter.next = add nuw nsw i64 %niter, 1
; EPILOG-BLOCK-NEXT: call void @bar()
; EPILOG-BLOCK-NEXT: br i1 %cond, label %loop_exiting_bb2.1, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_exiting_bb2.1:
; EPILOG-BLOCK-NEXT: %unknown.1 = call i1 @unknown_cond()
; EPILOG-BLOCK-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.epilog-lcssa.loopexit
; EPILOG-BLOCK: loop_latch.1:
-; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
-; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter.next, 1
+; EPILOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
+; EPILOG-BLOCK-NEXT: %niter.next.1 = add i64 %niter, 2
; EPILOG-BLOCK-NEXT: %niter.ncmp.1 = icmp ne i64 %niter.next.1, %unroll_iter
; EPILOG-BLOCK-NEXT: br i1 %niter.ncmp.1, label %loop_header, label %exit1.unr-lcssa.loopexit, !llvm.loop !20
; EPILOG-BLOCK: exit1.unr-lcssa.loopexit:
; PROLOG-NEXT: %unknown = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown, label %loop_latch, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch:
-; PROLOG-NEXT: %iv_next = add i64 %iv, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_exiting_bb2.1, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.1:
; PROLOG-NEXT: %unknown.1 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.1:
-; PROLOG-NEXT: %iv_next.1 = add i64 %iv_next, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_exiting_bb2.2, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.2:
; PROLOG-NEXT: %unknown.2 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.2, label %loop_latch.2, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.2:
-; PROLOG-NEXT: %iv_next.2 = add i64 %iv_next.1, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_exiting_bb2.3, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.3:
; PROLOG-NEXT: %unknown.3 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.3, label %loop_latch.3, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.3:
-; PROLOG-NEXT: %iv_next.3 = add i64 %iv_next.2, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_exiting_bb2.4, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.4:
; PROLOG-NEXT: %unknown.4 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.4, label %loop_latch.4, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.4:
-; PROLOG-NEXT: %iv_next.4 = add i64 %iv_next.3, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_exiting_bb2.5, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.5:
; PROLOG-NEXT: %unknown.5 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.5, label %loop_latch.5, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.5:
-; PROLOG-NEXT: %iv_next.5 = add i64 %iv_next.4, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_exiting_bb2.6, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.6:
; PROLOG-NEXT: %unknown.6 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.6, label %loop_latch.6, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.6:
-; PROLOG-NEXT: %iv_next.6 = add i64 %iv_next.5, 1
; PROLOG-NEXT: call void @bar()
; PROLOG-NEXT: br i1 %cond, label %loop_exiting_bb2.7, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_exiting_bb2.7:
; PROLOG-NEXT: %unknown.7 = call i1 @unknown_cond()
; PROLOG-NEXT: br i1 %unknown.7, label %loop_latch.7, label %exit1.unr-lcssa.loopexit
; PROLOG: loop_latch.7:
-; PROLOG-NEXT: %iv_next.7 = add i64 %iv_next.6, 1
+; PROLOG-NEXT: %iv_next.7 = add i64 %iv, 8
; PROLOG-NEXT: %cmp.7 = icmp ne i64 %iv_next.7, %trip
; PROLOG-NEXT: br i1 %cmp.7, label %loop_header, label %exit1.unr-lcssa.loopexit
; PROLOG: exit1.unr-lcssa.loopexit:
; PROLOG-BLOCK-NEXT: %unknown = call i1 @unknown_cond()
; PROLOG-BLOCK-NEXT: br i1 %unknown, label %loop_latch, label %exit1.unr-lcssa.loopexit
; PROLOG-BLOCK: loop_latch:
-; PROLOG-BLOCK-NEXT: %iv_next = add i64 %iv, 1
; PROLOG-BLOCK-NEXT: call void @bar()
; PROLOG-BLOCK-NEXT: br i1 %cond, label %loop_exiting_bb2.1, label %exit1.unr-lcssa.loopexit
; PROLOG-BLOCK: loop_exiting_bb2.1:
; PROLOG-BLOCK-NEXT: %unknown.1 = call i1 @unknown_cond()
; PROLOG-BLOCK-NEXT: br i1 %unknown.1, label %loop_latch.1, label %exit1.unr-lcssa.loopexit
; PROLOG-BLOCK: loop_latch.1:
-; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv_next, 1
+; PROLOG-BLOCK-NEXT: %iv_next.1 = add i64 %iv, 2
; PROLOG-BLOCK-NEXT: %cmp.1 = icmp ne i64 %iv_next.1, %trip
; PROLOG-BLOCK-NEXT: br i1 %cmp.1, label %loop_header, label %exit1.unr-lcssa.loopexit, !llvm.loop !20
; PROLOG-BLOCK: exit1.unr-lcssa.loopexit: