; RUN: llc < %s -march=r600 -mcpu=cayman | FileCheck %s ; CHECK-LABEL: {{^}}main: ; CHECK: LOOP_START_DX10 ; CHECK: ALU_PUSH_BEFORE ; CHECK: LOOP_START_DX10 ; CHECK: PUSH ; CHECK-NOT: ALU_PUSH_BEFORE ; CHECK: END_LOOP ; CHECK: END_LOOP define amdgpu_ps void @main (<4 x float> inreg %reg0) { entry: br label %outer_loop outer_loop: %cnt = phi i32 [0, %entry], [%cnt_incr, %inner_loop] %cond = icmp eq i32 %cnt, 16 br i1 %cond, label %outer_loop_body, label %exit outer_loop_body: %cnt_incr = add i32 %cnt, 1 br label %inner_loop inner_loop: %cnt2 = phi i32 [0, %outer_loop_body], [%cnt2_incr, %inner_loop_body] %n = load volatile i32, i32 addrspace(1)* undef %cond2 = icmp slt i32 %cnt2, %n br i1 %cond2, label %inner_loop_body, label %outer_loop inner_loop_body: %cnt2_incr = add i32 %cnt2, 1 br label %inner_loop exit: ret void }