1 ; RUN: llc < %s -march=r600 -mcpu=cayman | FileCheck %s 2 3 ; CHECK-LABEL: {{^}}main: 4 ; CHECK: LOOP_START_DX10 5 ; CHECK: ALU_PUSH_BEFORE 6 ; CHECK: LOOP_START_DX10 7 ; CHECK: PUSH 8 ; CHECK-NOT: ALU_PUSH_BEFORE 9 ; CHECK: END_LOOP 10 ; CHECK: END_LOOP 11 define void @main (<4 x float> inreg %reg0) #0 { 12 entry: 13 br label %outer_loop 14 outer_loop: 15 %cnt = phi i32 [0, %entry], [%cnt_incr, %inner_loop] 16 %cond = icmp eq i32 %cnt, 16 17 br i1 %cond, label %outer_loop_body, label %exit 18 outer_loop_body: 19 %cnt_incr = add i32 %cnt, 1 20 br label %inner_loop 21 inner_loop: 22 %cnt2 = phi i32 [0, %outer_loop_body], [%cnt2_incr, %inner_loop_body] 23 %cond2 = icmp eq i32 %cnt2, 16 24 br i1 %cond, label %inner_loop_body, label %outer_loop 25 inner_loop_body: 26 %cnt2_incr = add i32 %cnt2, 1 27 br label %inner_loop 28 exit: 29 ret void 30 } 31 32 attributes #0 = { "ShaderType"="0" }