Home | History | Annotate | Download | only in LoopStrengthReduce
      1 ; Make sure that the compare instruction occurs after the increment to avoid
      2 ; having overlapping live ranges that result in copies.  We want the setcc 
      3 ; instruction immediately before the conditional branch.
      4 ;
      5 ; RUN: opt -S -loop-reduce %s | FileCheck %s
      6 
      7 define void @foo(float* %D, i32 %E) {
      8 entry:
      9 	br label %no_exit
     10 no_exit:		; preds = %no_exit, %entry
     11 	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %no_exit ]		; <i32> [#uses=1]
     12 	volatile store float 0.000000e+00, float* %D
     13 	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
     14 ; CHECK: icmp
     15 ; CHECK-NEXT: br i1
     16 	%exitcond = icmp eq i32 %indvar.next, %E		; <i1> [#uses=1]
     17 	br i1 %exitcond, label %loopexit, label %no_exit
     18 loopexit:		; preds = %no_exit
     19 	ret void
     20 }
     21 
     22