Home | History | Annotate | Download | only in LCSSA
      1 ; RUN: opt < %s -lcssa -S | FileCheck %s
      2 ; RUN: opt < %s -passes=lcssa -S | FileCheck %s
      3 
      4 define void @lcssa(i1 %S2) {
      5 ; CHECK-LABEL: @lcssa
      6 entry:
      7 	br label %loop.interior
      8 loop.interior:		; preds = %post.if, %entry
      9 	br i1 %S2, label %if.true, label %if.false
     10 if.true:		; preds = %loop.interior
     11 	%X1 = add i32 0, 0		; <i32> [#uses=1]
     12 	br label %post.if
     13 if.false:		; preds = %loop.interior
     14 	%X2 = add i32 0, 1		; <i32> [#uses=1]
     15 	br label %post.if
     16 post.if:		; preds = %if.false, %if.true
     17 	%X3 = phi i32 [ %X1, %if.true ], [ %X2, %if.false ]		; <i32> [#uses=1]
     18 	br i1 %S2, label %loop.exit, label %loop.interior
     19 loop.exit:		; preds = %post.if
     20 ; CHECK: %X3.lcssa = phi i32
     21 ; CHECK: %X4 = add i32 3, %X3.lcssa
     22 	%X4 = add i32 3, %X3		; <i32> [#uses=0]
     23 	ret void
     24 }
     25 
     26