| ; Make sure that the compare instruction occurs after the increment to avoid |
| ; having overlapping live ranges that result in copies. We want the setcc instruction |
| ; immediately before the conditional branch. |
| ; |
| ; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | %prcontext 'br bool' 1 | grep set |
| |
| void %foo(float* %D, uint %E) { |
| entry: |
| br label %no_exit |
| |
| no_exit: |
| %indvar = phi uint [ 0, %entry ], [ %indvar.next, %no_exit ] |
| volatile store float 0.0, float* %D |
| %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2] |
| %exitcond = seteq uint %indvar.next, %E ; <bool> [#uses=1] |
| br bool %exitcond, label %loopexit, label %no_exit |
| |
| loopexit: |
| ret void |
| } |