; RUN: opt -loop-unroll-and-jam -allow-unroll-and-jam -unroll-and-jam-count=4 -pass-remarks=loop-unroll-and-jam < %s -S 2>&1 | FileCheck %s

target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"

;; Common check for all tests. None should be unroll and jammed
; CHECK-NOT: remark: {{.*}} unroll and jammed


; CHECK-LABEL: disabled1
; Tests for(i) { sum = A[i]; for(j) sum += B[j]; A[i+1] = sum; }
; A[i] to A[i+1] dependency should block unrollandjam
define void @disabled1(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i.029 = phi i32 [ %add10, %for.latch ], [ 0, %for.preheader ]
; CHECK: %j.026 = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp127 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp127, %cmp
  br i1 %or.cond, label %for.preheader, label %return

for.preheader:
  br label %for.outer

for.outer:
  %i.029 = phi i32 [ %add10, %for.latch ], [ 0, %for.preheader ]
  %b.028 = phi i32 [ %inc8, %for.latch ], [ 1, %for.preheader ]
  %arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.029
  %0 = load i32, i32* %arrayidx, align 4
  br label %for.inner

for.inner:
  %j.026 = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1.025 = phi i32 [ %0, %for.outer ], [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %B, i32 %j.026
  %1 = load i32, i32* %arrayidx6, align 4
  %add = add i32 %1, %sum1.025
  %inc = add nuw i32 %j.026, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %b.028
  store i32 %add, i32* %arrayidx7, align 4
  %inc8 = add nuw nsw i32 %b.028, 1
  %add10 = add nuw nsw i32 %i.029, 1
  %exitcond30 = icmp eq i32 %add10, %I
  br i1 %exitcond30, label %return, label %for.outer

return:
  ret void
}


; CHECK-LABEL: disabled2
; Tests an incompatible block layout (for.outer jumps past for.inner)
; FIXME: Make this work
define void @disabled2(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i.032 = phi i32 [ %add13, %for.latch ], [ 0, %for.preheader ]
; CHECK: %j.030 = phi i32 [ %inc, %for.inner ], [ 0, %for.inner.preheader ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp131 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp131, %cmp
  br i1 %or.cond, label %for.preheader, label %for.end14

for.preheader:
  br label %for.outer

for.outer:
  %i.032 = phi i32 [ %add13, %for.latch ], [ 0, %for.preheader ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %i.032
  %0 = load i32, i32* %arrayidx, align 4
  %tobool = icmp eq i32 %0, 0
  br i1 %tobool, label %for.latch, label %for.inner

for.inner:
  %j.030 = phi i32 [ %inc, %for.inner ], [ 0, %for.outer ]
  %sum1.029 = phi i32 [ %sum1.1, %for.inner ], [ 0, %for.outer ]
  %arrayidx6 = getelementptr inbounds i32, i32* %B, i32 %j.030
  %1 = load i32, i32* %arrayidx6, align 4
  %tobool7 = icmp eq i32 %1, 0
  %sub = add i32 %sum1.029, 10
  %add = sub i32 %sub, %1
  %sum1.1 = select i1 %tobool7, i32 %sum1.029, i32 %add
  %inc = add nuw i32 %j.030, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %sum1.1.lcssa = phi i32 [ 0, %for.outer ], [ %sum1.1, %for.inner ]
  %arrayidx11 = getelementptr inbounds i32, i32* %A, i32 %i.032
  store i32 %sum1.1.lcssa, i32* %arrayidx11, align 4
  %add13 = add nuw i32 %i.032, 1
  %exitcond33 = icmp eq i32 %add13, %I
  br i1 %exitcond33, label %for.end14, label %for.outer

for.end14:
  ret void
}


; CHECK-LABEL: disabled3
; Tests loop carry dependencies in an array S
define void @disabled3(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i.029 = phi i32 [ 0, %for.preheader ], [ %add12, %for.latch ]
; CHECK: %j.027 = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %S = alloca [4 x i32], align 4
  %cmp = icmp eq i32 %J, 0
  br i1 %cmp, label %return, label %if.end

if.end:
  %0 = bitcast [4 x i32]* %S to i8*
  %cmp128 = icmp eq i32 %I, 0
  br i1 %cmp128, label %for.cond.cleanup, label %for.preheader

for.preheader:
  %arrayidx9 = getelementptr inbounds [4 x i32], [4 x i32]* %S, i32 0, i32 0
  br label %for.outer

for.cond.cleanup:
  br label %return

for.outer:
  %i.029 = phi i32 [ 0, %for.preheader ], [ %add12, %for.latch ]
  br label %for.inner

for.inner:
  %j.027 = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j.027
  %l2 = load i32, i32* %arrayidx, align 4
  %add = add i32 %j.027, %i.029
  %rem = urem i32 %add, %J
  %arrayidx6 = getelementptr inbounds i32, i32* %B, i32 %rem
  %l3 = load i32, i32* %arrayidx6, align 4
  %mul = mul i32 %l3, %l2
  %rem7 = urem i32 %j.027, 3
  %arrayidx8 = getelementptr inbounds [4 x i32], [4 x i32]* %S, i32 0, i32 %rem7
  store i32 %mul, i32* %arrayidx8, align 4
  %inc = add nuw i32 %j.027, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %l1 = load i32, i32* %arrayidx9, align 4
  %arrayidx10 = getelementptr inbounds i32, i32* %A, i32 %i.029
  store i32 %l1, i32* %arrayidx10, align 4
  %add12 = add nuw i32 %i.029, 1
  %exitcond31 = icmp eq i32 %add12, %I
  br i1 %exitcond31, label %for.cond.cleanup, label %for.outer

return:
  ret void
}


; CHECK-LABEL: disabled4
; Inner looop induction variable is not consistent
; ie for(i = 0..n) for (j = 0..i) sum+=B[j]
define void @disabled4(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %indvars.iv = phi i32 [ %indvars.iv.next, %for.latch ], [ 1, %for.preheader ]
; CHECK: %j.021 = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ugt i32 %I, 1
  %or.cond = and i1 %cmp122, %cmp
  br i1 %or.cond, label %for.preheader, label %for.end9

for.preheader:
  br label %for.outer

for.outer:
  %indvars.iv = phi i32 [ %indvars.iv.next, %for.latch ], [ 1, %for.preheader ]
  br label %for.inner

for.inner:
  %j.021 = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1.020 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j.021
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1.020
  %inc = add nuw i32 %j.021, 1
  %exitcond = icmp eq i32 %inc, %indvars.iv
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %indvars.iv
  store i32 %add, i32* %arrayidx6, align 4
  %indvars.iv.next = add nuw i32 %indvars.iv, 1
  %exitcond24 = icmp eq i32 %indvars.iv.next, %I
  br i1 %exitcond24, label %for.end9, label %for.outer

for.end9:
  ret void
}


; CHECK-LABEL: disabled5
; Test odd uses of phi nodes where the outer IV cannot be moved into Fore as it hits a PHI
@f = hidden global i32 0, align 4
define i32 @disabled5() #0 {
; CHECK: %0 = phi i32 [ %f.promoted10, %entry ], [ 2, %for.latch ]
; CHECK: %1 = phi i32 [ %0, %for.outer ], [ 2, %for.inner ]
entry:
  %f.promoted10 = load i32, i32* @f, align 4
  br label %for.outer

for.outer:
  %0 = phi i32 [ %f.promoted10, %entry ], [ 2, %for.latch ]
  %d.018 = phi i16 [ 0, %entry ], [ %odd.lcssa, %for.latch ]
  %inc5.sink9 = phi i32 [ 2, %entry ], [ %inc5, %for.latch ]
  br label %for.inner

for.inner:
  %1 = phi i32 [ %0, %for.outer ], [ 2, %for.inner ]
  %inc.sink8 = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %inc = add nuw nsw i32 %inc.sink8, 1
  %exitcond = icmp ne i32 %inc, 7
  br i1 %exitcond, label %for.inner, label %for.latch

for.latch:
  %.lcssa = phi i32 [ %1, %for.inner ]
  %odd.lcssa = phi i16 [ 1, %for.inner ]
  %inc5 = add nuw nsw i32 %inc5.sink9, 1
  %exitcond11 = icmp ne i32 %inc5, 7
  br i1 %exitcond11, label %for.outer, label %for.end

for.end:
  %.lcssa.lcssa = phi i32 [ %.lcssa, %for.latch ]
  %inc.lcssa.lcssa = phi i32 [ 7, %for.latch ]
  ret i32 0
}


; CHECK-LABEL: disabled6
; There is a dependency in here, between @d and %0 (=@f)
@d6 = hidden global i16 5, align 2
@f6 = hidden global i16* @d6, align 4
define i32 @disabled6() #0 {
; CHECK: %inc8.sink14.i = phi i16 [ 1, %entry ], [ %inc8.i, %for.cond.cleanup.i ]
; CHECK: %c.013.i = phi i32 [ 0, %for.body.i ], [ %inc.i, %for.body6.i ]
entry:
  store i16 1, i16* @d6, align 2
  %0 = load i16*, i16** @f6, align 4
  br label %for.body.i

for.body.i:
  %inc8.sink14.i = phi i16 [ 1, %entry ], [ %inc8.i, %for.cond.cleanup.i ]
  %1 = load i16, i16* %0, align 2
  br label %for.body6.i

for.cond.cleanup.i:
  %inc8.i = add nuw nsw i16 %inc8.sink14.i, 1
  store i16 %inc8.i, i16* @d6, align 2
  %cmp.i = icmp ult i16 %inc8.i, 6
  br i1 %cmp.i, label %for.body.i, label %test.exit

for.body6.i:
  %c.013.i = phi i32 [ 0, %for.body.i ], [ %inc.i, %for.body6.i ]
  %inc.i = add nuw nsw i32 %c.013.i, 1
  %exitcond.i = icmp eq i32 %inc.i, 7
  br i1 %exitcond.i, label %for.cond.cleanup.i, label %for.body6.i

test.exit:
  %conv2.i = sext i16 %1 to i32
  ret i32 0
}


; CHECK-LABEL: disabled7
; Has negative output dependency
define void @disabled7(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i.028 = phi i32 [ %add11, %for.cond3.for.cond.cleanup5_crit_edge ], [ 0, %for.body.preheader ]
; CHECK: %j.026 = phi i32 [ 0, %for.body ], [ %add9, %for.body6 ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp127 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp127, %cmp
  br i1 %or.cond, label %for.body.preheader, label %for.end12

for.body.preheader:
  br label %for.body

for.body:
  %i.028 = phi i32 [ %add11, %for.cond3.for.cond.cleanup5_crit_edge ], [ 0, %for.body.preheader ]
  %arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.028
  store i32 0, i32* %arrayidx, align 4
  %sub = add i32 %i.028, -1
  %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %sub
  store i32 2, i32* %arrayidx2, align 4
  br label %for.body6

for.cond3.for.cond.cleanup5_crit_edge:
  store i32 %add, i32* %arrayidx, align 4
  %add11 = add nuw i32 %i.028, 1
  %exitcond29 = icmp eq i32 %add11, %I
  br i1 %exitcond29, label %for.end12, label %for.body

for.body6:
  %0 = phi i32 [ 0, %for.body ], [ %add, %for.body6 ]
  %j.026 = phi i32 [ 0, %for.body ], [ %add9, %for.body6 ]
  %arrayidx7 = getelementptr inbounds i32, i32* %B, i32 %j.026
  %1 = load i32, i32* %arrayidx7, align 4
  %add = add i32 %1, %0
  %add9 = add nuw i32 %j.026, 1
  %exitcond = icmp eq i32 %add9, %J
  br i1 %exitcond, label %for.cond3.for.cond.cleanup5_crit_edge, label %for.body6

for.end12:
  ret void
}


; CHECK-LABEL: disabled8
; Same as above with an extra outer loop nest
define void @disabled8(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i.036 = phi i32 [ %add15, %for.latch ], [ 0, %for.body ]
; CHECK: %j.034 = phi i32 [ 0, %for.outer ], [ %add13, %for.inner ]
entry:
  %cmp = icmp eq i32 %J, 0
  %cmp335 = icmp eq i32 %I, 0
  %or.cond = or i1 %cmp, %cmp335
  br i1 %or.cond, label %for.end18, label %for.body.preheader

for.body.preheader:
  br label %for.body

for.body:
  %x.037 = phi i32 [ %inc, %for.cond.cleanup4 ], [ 0, %for.body.preheader ]
  br label %for.outer

for.cond.cleanup4:
  %inc = add nuw nsw i32 %x.037, 1
  %exitcond40 = icmp eq i32 %inc, 5
  br i1 %exitcond40, label %for.end18, label %for.body

for.outer:
  %i.036 = phi i32 [ %add15, %for.latch ], [ 0, %for.body ]
  %arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.036
  store i32 0, i32* %arrayidx, align 4
  %sub = add i32 %i.036, -1
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %sub
  store i32 2, i32* %arrayidx6, align 4
  br label %for.inner

for.latch:
  store i32 %add, i32* %arrayidx, align 4
  %add15 = add nuw i32 %i.036, 1
  %exitcond38 = icmp eq i32 %add15, %I
  br i1 %exitcond38, label %for.cond.cleanup4, label %for.outer

for.inner:
  %0 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %j.034 = phi i32 [ 0, %for.outer ], [ %add13, %for.inner ]
  %arrayidx11 = getelementptr inbounds i32, i32* %B, i32 %j.034
  %1 = load i32, i32* %arrayidx11, align 4
  %add = add i32 %1, %0
  %add13 = add nuw i32 %j.034, 1
  %exitcond = icmp eq i32 %add13, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.end18:
  ret void
}


; CHECK-LABEL: disabled9
; Can't prove alias between A and B
define void @disabled9(i32 %I, i32 %J, i32* nocapture %A, i32* nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
  br label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  %add8 = add nuw i32 %i, 1
  %exitcond25 = icmp eq i32 %add8, %I
  br i1 %exitcond25, label %for.end.loopexit, label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}


; CHECK-LABEL: disable10
; Simple call
declare void @f10(i32, i32) #0
define void @disable10(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
  br label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  tail call void @f10(i32 %i, i32 %j) nounwind
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  %add8 = add nuw i32 %i, 1
  %exitcond25 = icmp eq i32 %add8, %I
  br i1 %exitcond25, label %for.end.loopexit, label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}


; CHECK-LABEL: disable11
; volatile
define void @disable11(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
  br label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load volatile i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  %add8 = add nuw i32 %i, 1
  %exitcond25 = icmp eq i32 %add8, %I
  br i1 %exitcond25, label %for.end.loopexit, label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}


; CHECK-LABEL: disable12
; Multiple aft blocks
define void @disable12(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch3 ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch3 ], [ 0, %for.outer.preheader ]
  br label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  %cmpl = icmp eq i32 %add.lcssa, 10
  br i1 %cmpl, label %for.latch2, label %for.latch3

for.latch2:
  br label %for.latch3

for.latch3:
  %add8 = add nuw i32 %i, 1
  %exitcond25 = icmp eq i32 %add8, %I
  br i1 %exitcond25, label %for.end.loopexit, label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}


; CHECK-LABEL: disable13
; Two subloops
define void @disable13(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
; CHECK: %j2 = phi i32 [ %inc2, %for.inner2 ], [ 0, %for.inner2.preheader ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
  br label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.inner2, label %for.inner

for.inner2:
  %j2 = phi i32 [ 0, %for.inner ], [ %inc2, %for.inner2 ]
  %sum12 = phi i32 [ 0, %for.inner ], [ %add2, %for.inner2 ]
  %arrayidx2 = getelementptr inbounds i32, i32* %B, i32 %j2
  %l0 = load i32, i32* %arrayidx2, align 4
  %add2 = add i32 %l0, %sum12
  %inc2 = add nuw i32 %j2, 1
  %exitcond2 = icmp eq i32 %inc2, %J
  br i1 %exitcond2, label %for.latch, label %for.inner2

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner2 ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  %add8 = add nuw i32 %i, 1
  %exitcond25 = icmp eq i32 %add8, %I
  br i1 %exitcond25, label %for.end.loopexit, label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}


; CHECK-LABEL: disable14
; Multiple exits blocks
define void @disable14(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ %inc, %for.inner ], [ 0, %for.inner.preheader ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
  %add8 = add nuw i32 %i, 1
  %exitcond23 = icmp eq i32 %add8, %I
  br i1 %exitcond23, label %for.end.loopexit, label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  %exitcond25 = icmp eq i32 %add8, %I
  br i1 %exitcond25, label %for.end.loopexit, label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}


; CHECK-LABEL: disable15
; Latch != exit
define void @disable15(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ %inc, %for.inner ], [ 0, %for.inner.preheader ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
  %add8 = add nuw i32 %i, 1
  %exitcond25 = icmp eq i32 %add8, %I
  br i1 %exitcond25, label %for.end.loopexit, label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  br label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}


; CHECK-LABEL: disable16
; Cannot move other before inner loop
define void @disable16(i32 %I, i32 %J, i32* noalias nocapture %A, i32* noalias nocapture readonly %B) #0 {
; CHECK: %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
; CHECK: %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
entry:
  %cmp = icmp ne i32 %J, 0
  %cmp122 = icmp ne i32 %I, 0
  %or.cond = and i1 %cmp, %cmp122
  br i1 %or.cond, label %for.outer.preheader, label %for.end

for.outer.preheader:
  br label %for.outer

for.outer:
  %i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
  %otherphi = phi i32 [ %other, %for.latch ], [ 0, %for.outer.preheader ]
  br label %for.inner

for.inner:
  %j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
  %sum1 = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
  %arrayidx = getelementptr inbounds i32, i32* %B, i32 %j
  %0 = load i32, i32* %arrayidx, align 4
  %add = add i32 %0, %sum1
  %inc = add nuw i32 %j, 1
  %exitcond = icmp eq i32 %inc, %J
  br i1 %exitcond, label %for.latch, label %for.inner

for.latch:
  %add.lcssa = phi i32 [ %add, %for.inner ]
  %arrayidx6 = getelementptr inbounds i32, i32* %A, i32 %i
  store i32 %add.lcssa, i32* %arrayidx6, align 4
  %add8 = add nuw i32 %i, 1
  %exitcond25 = icmp eq i32 %add8, %I
  %loadarr = getelementptr inbounds i32, i32* %A, i32 %i
  %load = load i32, i32* %arrayidx6, align 4
  %other = add i32 %otherphi, %load
  br i1 %exitcond25, label %for.end.loopexit, label %for.outer

for.end.loopexit:
  br label %for.end

for.end:
  ret void
}
