xref: /aosp_15_r20/external/llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -loop-simplify -disable-output -verify-loop-info -verify-dom-info < %s
2*9880d681SAndroid Build Coastguard Worker; PR5235
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; When loopsimplify inserts a preheader for this loop, it should add the new
5*9880d681SAndroid Build Coastguard Worker; block to the enclosing loop and not get confused by the unreachable
6*9880d681SAndroid Build Coastguard Worker; bogus loop entry.
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine void @is_extract_cab() nounwind {
9*9880d681SAndroid Build Coastguard Workerentry:
10*9880d681SAndroid Build Coastguard Worker  br label %header
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerheader:                                       ; preds = %if.end206, %cond.end66, %if.end23
13*9880d681SAndroid Build Coastguard Worker  br label %while.body115
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerwhile.body115:                                    ; preds = %9, %if.end192, %if.end101
16*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %header, label %while.body115
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerfoo:
19*9880d681SAndroid Build Coastguard Worker  br label %while.body115
20*9880d681SAndroid Build Coastguard Worker}
21