; RUN: llc -march=hexagon -mcpu=hexagonv5 < %s | FileCheck %s
;
; Generate loop1 instruction for double loop sequence.

; CHECK: loop1(.LBB{{.}}_{{.}},#100)
; CHECK: loop0(.LBB{{.}}_{{.}},#100)
; CHECK: endloop0
; CHECK: endloop1

define i32 @main() #0 {
entry:
  %array = alloca [100 x i32], align 8
  %doublearray = alloca [100 x [100 x i32]], align 8
  %0 = bitcast [100 x i32]* %array to i8*
  call void @llvm.lifetime.start.p0i8(i64 400, i8* %0) #1
  %1 = bitcast [100 x [100 x i32]]* %doublearray to i8*
  call void @llvm.lifetime.start.p0i8(i64 40000, i8* %1) #1
  %arrayidx1 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %doublearray, i32 0, i32 10, i32 10
  %arrayidx2.gep = getelementptr [100 x i32], [100 x i32]* %array, i32 0, i32 0
  br label %for.body

for.body:
  %2 = phi i32 [ undef, %entry ], [ %.pre, %for.body.for.body_crit_edge ]
  %sum.031 = phi i32 [ undef, %entry ], [ %add, %for.body.for.body_crit_edge ]
  %arrayidx2.phi = phi i32* [ %arrayidx2.gep, %entry ], [ %arrayidx2.inc, %for.body.for.body_crit_edge ]
  %i.030 = phi i32 [ 1, %entry ], [ %phitmp, %for.body.for.body_crit_edge ]
  %add = add nsw i32 %2, %sum.031
  %exitcond33 = icmp eq i32 %i.030, 100
  %arrayidx2.inc = getelementptr i32, i32* %arrayidx2.phi, i32 1
  br i1 %exitcond33, label %for.cond7.preheader.preheader, label %for.body.for.body_crit_edge

for.cond7.preheader.preheader:
  br label %for.cond7.preheader

for.body.for.body_crit_edge:
  %.pre = load i32, i32* %arrayidx2.inc, align 4
  %phitmp = add i32 %i.030, 1
  br label %for.body

for.cond7.preheader:
  %i.129 = phi i32 [ %inc16, %for.inc15 ], [ 0, %for.cond7.preheader.preheader ]
  br label %for.body9

for.body9:
  %j.028 = phi i32 [ 0, %for.cond7.preheader ], [ %inc13, %for.body9 ]
  %arrayidx11 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %doublearray, i32 0, i32 %i.129, i32 %j.028
  store i32 %add, i32* %arrayidx11, align 4
  %inc13 = add nsw i32 %j.028, 1
  %exitcond = icmp eq i32 %inc13, 100
  br i1 %exitcond, label %for.inc15, label %for.body9

for.inc15:
  %inc16 = add nsw i32 %i.129, 1
  %exitcond32 = icmp eq i32 %inc16, 100
  br i1 %exitcond32, label %for.end17, label %for.cond7.preheader

for.end17:
  %3 = load i32, i32* %arrayidx1, align 8
  call void @llvm.lifetime.end.p0i8(i64 40000, i8* %1) #1
  call void @llvm.lifetime.end.p0i8(i64 400, i8* %0) #1
  ret i32 %3
}

declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1

declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1
