Home | History | Annotate | Download | only in SimplifyCFG
      1 ; RUN: opt < %s -simplifycfg -disable-output
      2 ; END.
      3 
      4 define void @main() {
      5 entry:
      6 	%tmp.14.i19 = icmp eq i32 0, 2		; <i1> [#uses=1]
      7 	br i1 %tmp.14.i19, label %endif.1.i20, label %read_min.exit
      8 endif.1.i20:		; preds = %entry
      9 	%tmp.9.i.i = icmp eq i8* null, null		; <i1> [#uses=1]
     10 	br i1 %tmp.9.i.i, label %then.i12.i, label %then.i.i
     11 then.i.i:		; preds = %endif.1.i20
     12 	ret void
     13 then.i12.i:		; preds = %endif.1.i20
     14 	%tmp.9.i4.i = icmp eq i8* null, null		; <i1> [#uses=1]
     15 	br i1 %tmp.9.i4.i, label %endif.2.i33, label %then.i5.i
     16 then.i5.i:		; preds = %then.i12.i
     17 	ret void
     18 endif.2.i33:		; preds = %then.i12.i
     19 	br i1 false, label %loopexit.0.i40, label %no_exit.0.i35
     20 no_exit.0.i35:		; preds = %no_exit.0.i35, %endif.2.i33
     21 	%tmp.130.i = icmp slt i32 0, 0		; <i1> [#uses=1]
     22 	br i1 %tmp.130.i, label %loopexit.0.i40.loopexit, label %no_exit.0.i35
     23 loopexit.0.i40.loopexit:		; preds = %no_exit.0.i35
     24 	br label %loopexit.0.i40
     25 loopexit.0.i40:		; preds = %loopexit.0.i40.loopexit, %endif.2.i33
     26 	%tmp.341.i = icmp eq i32 0, 0		; <i1> [#uses=1]
     27 	br i1 %tmp.341.i, label %loopentry.1.i, label %read_min.exit
     28 loopentry.1.i:		; preds = %loopexit.0.i40
     29 	%tmp.347.i = icmp sgt i32 0, 0		; <i1> [#uses=1]
     30 	br i1 %tmp.347.i, label %no_exit.1.i41, label %loopexit.2.i44
     31 no_exit.1.i41:		; preds = %endif.5.i, %loopentry.1.i
     32 	%indvar.i42 = phi i32 [ %indvar.next.i, %endif.5.i ], [ 0, %loopentry.1.i ]		; <i32> [#uses=1]
     33 	%tmp.355.i = icmp eq i32 0, 3		; <i1> [#uses=1]
     34 	br i1 %tmp.355.i, label %endif.5.i, label %read_min.exit
     35 endif.5.i:		; preds = %no_exit.1.i41
     36 	%tmp.34773.i = icmp sgt i32 0, 0		; <i1> [#uses=1]
     37 	%indvar.next.i = add i32 %indvar.i42, 1		; <i32> [#uses=1]
     38 	br i1 %tmp.34773.i, label %no_exit.1.i41, label %loopexit.1.i.loopexit
     39 loopexit.1.i.loopexit:		; preds = %endif.5.i
     40 	ret void
     41 loopexit.2.i44:		; preds = %loopentry.1.i
     42 	ret void
     43 read_min.exit:		; preds = %no_exit.1.i41, %loopexit.0.i40, %entry
     44 	%tmp.23 = icmp eq i32 0, 0		; <i1> [#uses=1]
     45 	br i1 %tmp.23, label %endif.1, label %then.1
     46 then.1:		; preds = %read_min.exit
     47 	br i1 false, label %endif.0.i, label %then.0.i
     48 then.0.i:		; preds = %then.1
     49 	br i1 false, label %endif.1.i, label %then.1.i
     50 endif.0.i:		; preds = %then.1
     51 	br i1 false, label %endif.1.i, label %then.1.i
     52 then.1.i:		; preds = %endif.0.i, %then.0.i
     53 	br i1 false, label %getfree.exit, label %then.2.i
     54 endif.1.i:		; preds = %endif.0.i, %then.0.i
     55 	br i1 false, label %getfree.exit, label %then.2.i
     56 then.2.i:		; preds = %endif.1.i, %then.1.i
     57 	ret void
     58 getfree.exit:		; preds = %endif.1.i, %then.1.i
     59 	ret void
     60 endif.1:		; preds = %read_min.exit
     61 	%tmp.27.i = getelementptr i32* null, i32 0		; <i32*> [#uses=0]
     62 	br i1 false, label %loopexit.0.i15, label %no_exit.0.i14
     63 no_exit.0.i14:		; preds = %endif.1
     64 	ret void
     65 loopexit.0.i15:		; preds = %endif.1
     66 	br i1 false, label %primal_start_artificial.exit, label %no_exit.1.i16
     67 no_exit.1.i16:		; preds = %no_exit.1.i16, %loopexit.0.i15
     68 	br i1 false, label %primal_start_artificial.exit, label %no_exit.1.i16
     69 primal_start_artificial.exit:		; preds = %no_exit.1.i16, %loopexit.0.i15
     70 	ret void
     71 }
     72