xref: /aosp_15_r20/external/llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -simplifycfg -S | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; PR9420
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; Note that the crash in PR9420 test is sensitive to the ordering of
5*9880d681SAndroid Build Coastguard Worker; the transformations done by SimplifyCFG, so this test is likely to rot
6*9880d681SAndroid Build Coastguard Worker; quickly.
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine noalias i8* @func_29() nounwind {
9*9880d681SAndroid Build Coastguard Worker; CHECK: entry:
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: unreachable
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker  br label %for.cond
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerfor.cond:                                         ; preds = %for.inc38, %entry
15*9880d681SAndroid Build Coastguard Worker  %p_34.addr.0 = phi i16 [ 1, %entry ], [ %conv40, %for.inc38 ]
16*9880d681SAndroid Build Coastguard Worker  br label %for.cond1
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerfor.cond1:                                        ; preds = %for.inc29, %for.cond
19*9880d681SAndroid Build Coastguard Worker  %p_32.addr.0 = phi i1 [ true, %for.cond ], [ true, %for.inc29 ]
20*9880d681SAndroid Build Coastguard Worker  br i1 %p_32.addr.0, label %for.body8, label %for.inc38
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerfor.body8:                                        ; preds = %for.cond1
23*9880d681SAndroid Build Coastguard Worker  unreachable
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerfor.inc29:                                        ; preds = %for.cond17
26*9880d681SAndroid Build Coastguard Worker  br label %for.cond1
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerfor.inc38:                                        ; preds = %for.end32
29*9880d681SAndroid Build Coastguard Worker  %conv40 = add i16 %p_34.addr.0, 1
30*9880d681SAndroid Build Coastguard Worker  br label %for.cond
31*9880d681SAndroid Build Coastguard Worker}
32