; This testcase tests to see if adds and PHI's are handled in their full ; generality. This testcase comes from the following C code: ; ; void f() { ; int i; ; for (i = 1; i < 100; i++) { ; if (i) ; g(); ; } ; } ; ; Note that this is a "feature" test, not a correctness test. ; ; RUN: if as < %s | opt -cee -simplifycfg | dis | grep cond213 ; RUN: then exit 1 ; RUN: else exit 0 ; RUN: fi ; implementation ; Functions: declare void %g() void %f() { bb0: ; No predecessors! br label %bb2 bb2: ; preds = %bb4, %bb0 %cann-indvar = phi int [ 0, %bb0 ], [ %add1-indvar, %bb4 ] ; [#uses=2] %add1-indvar = add int %cann-indvar, 1 ; [#uses=2] %cond213 = seteq int %add1-indvar, 0 ; [#uses=1] br bool %cond213, label %bb4, label %bb3 bb3: ; preds = %bb2 call void %g( ) br label %bb4 bb4: ; preds = %bb3, %bb2 %reg109 = add int %cann-indvar, 2 ; [#uses=1] %cond217 = setle int %reg109, 99 ; [#uses=1] br bool %cond217, label %bb2, label %bb5 bb5: ; preds = %bb4 ret void }