1*9880d681SAndroid Build Coastguard Worker; This testcase exposed a problem with the loop identification pass (LoopInfo). 2*9880d681SAndroid Build Coastguard Worker; Basically, it was incorrectly calculating the loop nesting information. 3*9880d681SAndroid Build Coastguard Worker; 4*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -loop-simplify 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine i32 @yylex() { 7*9880d681SAndroid Build Coastguard Worker br label %loopentry.0 8*9880d681SAndroid Build Coastguard Workerloopentry.0: ; preds = %else.4, %0 9*9880d681SAndroid Build Coastguard Worker br label %loopexit.2 10*9880d681SAndroid Build Coastguard Workerloopexit.2: ; preds = %else.4, %loopexit.2, %loopentry.0 11*9880d681SAndroid Build Coastguard Worker br i1 false, label %loopexit.2, label %else.4 12*9880d681SAndroid Build Coastguard Workeryy_find_action: ; preds = %else.4 13*9880d681SAndroid Build Coastguard Worker br label %else.4 14*9880d681SAndroid Build Coastguard Workerelse.4: ; preds = %yy_find_action, %loopexit.2 15*9880d681SAndroid Build Coastguard Worker switch i32 0, label %loopexit.2 [ 16*9880d681SAndroid Build Coastguard Worker i32 2, label %yy_find_action 17*9880d681SAndroid Build Coastguard Worker i32 0, label %loopentry.0 18*9880d681SAndroid Build Coastguard Worker ] 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21