1*9880d681SAndroid Build Coastguard Worker;RUN: llc < %s -march=r600 -mcpu=redwood < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker;CHECK: ALU_PUSH 4*9880d681SAndroid Build Coastguard Worker;CHECK: LOOP_START_DX10 @11 5*9880d681SAndroid Build Coastguard Worker;CHECK: LOOP_BREAK @10 6*9880d681SAndroid Build Coastguard Worker;CHECK: POP @10 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdefine void @loop_ge(i32 addrspace(1)* nocapture %out, i32 %iterations) #0 { 9*9880d681SAndroid Build Coastguard Workerentry: 10*9880d681SAndroid Build Coastguard Worker %cmp5 = icmp sgt i32 %iterations, 0 11*9880d681SAndroid Build Coastguard Worker br i1 %cmp5, label %for.body, label %for.end 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %for.body, %entry 14*9880d681SAndroid Build Coastguard Worker %i.07.in = phi i32 [ %i.07, %for.body ], [ %iterations, %entry ] 15*9880d681SAndroid Build Coastguard Worker %ai.06 = phi i32 [ %add, %for.body ], [ 0, %entry ] 16*9880d681SAndroid Build Coastguard Worker %i.07 = add nsw i32 %i.07.in, -1 17*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %out, i32 %ai.06 18*9880d681SAndroid Build Coastguard Worker store i32 %i.07, i32 addrspace(1)* %arrayidx, align 4 19*9880d681SAndroid Build Coastguard Worker %add = add nsw i32 %ai.06, 1 20*9880d681SAndroid Build Coastguard Worker %exitcond = icmp eq i32 %add, %iterations 21*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.end, label %for.body 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.body, %entry 24*9880d681SAndroid Build Coastguard Worker ret void 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "fp-contract-model"="standard" "relocation-model"="pic" "ssp-buffers-size"="8" } 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker!opencl.kernels = !{!0, !1, !2, !3} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker!0 = !{void (i32 addrspace(1)*, i32)* @loop_ge} 32*9880d681SAndroid Build Coastguard Worker!1 = !{null} 33*9880d681SAndroid Build Coastguard Worker!2 = !{null} 34*9880d681SAndroid Build Coastguard Worker!3 = !{null} 35