; 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.
;
; XFAIL: *
; RUN: llvm-upgrade < %s | llvm-as | opt -cee -simplifycfg -disable-output &&
; RUN: llvm-upgrade < %s | llvm-as | opt -cee -simplifycfg | llvm-dis | not grep cond213
;
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 ]		; <int> [#uses=2]
	%add1-indvar = add int %cann-indvar, 1		; <int> [#uses=2]
	%cond213 = seteq int %add1-indvar, 0		; <bool> [#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		; <int> [#uses=1]
	%cond217 = setle int %reg109, 99		; <bool> [#uses=1]
	br bool %cond217, label %bb2, label %bb5

bb5:		; preds = %bb4
	ret void
}
