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

implementation   ; Functions:

int %yylex() {		; No predecessors!
	br label %loopentry.0

loopentry.0:		; preds = %0, %yy_find_action, %else.4
	br label %loopexit.2

loopexit.2:		; preds = %loopentry.0, %else.4, %loopexit.2
	br bool false, label %loopexit.2, label %else.4

yy_find_action:		; preds = %loopexit.2, %else.4
	br label %else.4

else.4:		; preds = %yy_find_action
	switch uint 0, label %loopexit.2 [
		 uint 2, label %yy_find_action
		 uint 0, label %loopentry.0
	]
}
