; This testcase exposed a problem with the loop identification pass (LoopInfo).
; Basically, it was incorrectly calculating the loop nesting information.
;
; RUN: opt < %s -passes=loop-simplify

define i32 @yylex() {
	br label %loopentry.0
loopentry.0:		; preds = %else.4, %0
	br label %loopexit.2
loopexit.2:		; preds = %else.4, %loopexit.2, %loopentry.0
	br i1 false, label %loopexit.2, label %else.4
yy_find_action:		; preds = %else.4
	br label %else.4
else.4:		; preds = %yy_find_action, %loopexit.2
	switch i32 0, label %loopexit.2 [
		 i32 2, label %yy_find_action
		 i32 0, label %loopentry.0
	]
}

