; RUN: llc < %s -march=r600 -mattr=disable-ifcvt -mcpu=redwood | FileCheck %s

; This tests for abug where the AMDILCFGStructurizer was crashing on loops
; like this:
;
; for (i = 0; i < x; i++) {
;   if (cond0) {
;     if (cond1) {
;
;     } else {
;
;     }
;     if (cond2) {
;
;     }
;   }
; }

; CHECK-LABEL: {{^}}if_inside_loop:
; CHECK: LOOP_START_DX10
; CHECK: END_LOOP
define void @if_inside_loop(i32 addrspace(1)* %out, i32 %a, i32 %b, i32 %c, i32 %d) {
entry:
  br label %for.body

for.body:
  %0 = phi i32 [0, %entry], [%inc, %for.inc]
  %val = phi i32 [0, %entry], [%val.for.inc, %for.inc]
  %inc = add i32 %0, 1
  %1 = icmp ult i32 10, %a
  br i1 %1, label %for.inc, label %if.then

if.then:
  %2 = icmp ne i32 0, %b
  br i1 %2, label %if.then.true, label %if.then.false

if.then.true:
  %3 = add i32 %a, %val
  br label %if

if.then.false:
  %4 = mul i32 %a, %val
  br label %if

if:
  %val.if = phi i32 [%3, %if.then.true], [%4, %if.then.false]
  %5 = icmp ne i32 0, %c
  br i1 %5, label %if.true, label %for.inc

if.true:
  %6 = add i32 %a, %val.if
  br label %for.inc

for.inc:
  %val.for.inc = phi i32 [%val, %for.body], [%val.if, %if], [%6, %if.true]
  %7 = icmp ne i32 0, %d
  br i1 %7, label %for.body, label %exit

exit:
  store i32 %val.for.inc, i32 addrspace(1)* %out
  ret void
}
