xref: /aosp_15_r20/external/llvm/test/Transforms/Mem2Reg/2005-11-28-Crash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -mem2reg -disable-output
2*9880d681SAndroid Build Coastguard Worker; PR670
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine void @printk(i32, ...) {
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker	%flags = alloca i32		; <i32*> [#uses=2]
7*9880d681SAndroid Build Coastguard Worker	br i1 false, label %then.0, label %endif.0
8*9880d681SAndroid Build Coastguard Workerthen.0:		; preds = %entry
9*9880d681SAndroid Build Coastguard Worker	br label %endif.0
10*9880d681SAndroid Build Coastguard Workerendif.0:		; preds = %then.0, %entry
11*9880d681SAndroid Build Coastguard Worker	store i32 0, i32* %flags
12*9880d681SAndroid Build Coastguard Worker	br label %loopentry
13*9880d681SAndroid Build Coastguard Workerloopentry:		; preds = %endif.3, %endif.0
14*9880d681SAndroid Build Coastguard Worker	br i1 false, label %no_exit, label %loopexit
15*9880d681SAndroid Build Coastguard Workerno_exit:		; preds = %loopentry
16*9880d681SAndroid Build Coastguard Worker	br i1 false, label %then.1, label %endif.1
17*9880d681SAndroid Build Coastguard Workerthen.1:		; preds = %no_exit
18*9880d681SAndroid Build Coastguard Worker	br i1 false, label %shortcirc_done.0, label %shortcirc_next.0
19*9880d681SAndroid Build Coastguard Workershortcirc_next.0:		; preds = %then.1
20*9880d681SAndroid Build Coastguard Worker	br label %shortcirc_done.0
21*9880d681SAndroid Build Coastguard Workershortcirc_done.0:		; preds = %shortcirc_next.0, %then.1
22*9880d681SAndroid Build Coastguard Worker	br i1 false, label %shortcirc_done.1, label %shortcirc_next.1
23*9880d681SAndroid Build Coastguard Workershortcirc_next.1:		; preds = %shortcirc_done.0
24*9880d681SAndroid Build Coastguard Worker	br label %shortcirc_done.1
25*9880d681SAndroid Build Coastguard Workershortcirc_done.1:		; preds = %shortcirc_next.1, %shortcirc_done.0
26*9880d681SAndroid Build Coastguard Worker	br i1 false, label %shortcirc_done.2, label %shortcirc_next.2
27*9880d681SAndroid Build Coastguard Workershortcirc_next.2:		; preds = %shortcirc_done.1
28*9880d681SAndroid Build Coastguard Worker	br label %shortcirc_done.2
29*9880d681SAndroid Build Coastguard Workershortcirc_done.2:		; preds = %shortcirc_next.2, %shortcirc_done.1
30*9880d681SAndroid Build Coastguard Worker	br i1 false, label %then.2, label %endif.2
31*9880d681SAndroid Build Coastguard Workerthen.2:		; preds = %shortcirc_done.2
32*9880d681SAndroid Build Coastguard Worker	br label %endif.2
33*9880d681SAndroid Build Coastguard Workerendif.2:		; preds = %then.2, %shortcirc_done.2
34*9880d681SAndroid Build Coastguard Worker	br label %endif.1
35*9880d681SAndroid Build Coastguard Workerendif.1:		; preds = %endif.2, %no_exit
36*9880d681SAndroid Build Coastguard Worker	br i1 false, label %then.3, label %endif.3
37*9880d681SAndroid Build Coastguard Workerthen.3:		; preds = %endif.1
38*9880d681SAndroid Build Coastguard Worker	br label %endif.3
39*9880d681SAndroid Build Coastguard Workerendif.3:		; preds = %then.3, %endif.1
40*9880d681SAndroid Build Coastguard Worker	br label %loopentry
41*9880d681SAndroid Build Coastguard Workerloopexit:		; preds = %loopentry
42*9880d681SAndroid Build Coastguard Worker	br label %endif.4
43*9880d681SAndroid Build Coastguard Workerthen.4:		; No predecessors!
44*9880d681SAndroid Build Coastguard Worker	%tmp.61 = load i32, i32* %flags		; <i32> [#uses=0]
45*9880d681SAndroid Build Coastguard Worker	br label %out
46*9880d681SAndroid Build Coastguard Workerdead_block_after_goto:		; No predecessors!
47*9880d681SAndroid Build Coastguard Worker	br label %endif.4
48*9880d681SAndroid Build Coastguard Workerendif.4:		; preds = %dead_block_after_goto, %loopexit
49*9880d681SAndroid Build Coastguard Worker	br i1 false, label %then.5, label %else
50*9880d681SAndroid Build Coastguard Workerthen.5:		; preds = %endif.4
51*9880d681SAndroid Build Coastguard Worker	br label %endif.5
52*9880d681SAndroid Build Coastguard Workerelse:		; preds = %endif.4
53*9880d681SAndroid Build Coastguard Worker	br label %endif.5
54*9880d681SAndroid Build Coastguard Workerendif.5:		; preds = %else, %then.5
55*9880d681SAndroid Build Coastguard Worker	br label %out
56*9880d681SAndroid Build Coastguard Workerout:		; preds = %endif.5, %then.4
57*9880d681SAndroid Build Coastguard Worker	br label %return
58*9880d681SAndroid Build Coastguard Workerafter_ret:		; No predecessors!
59*9880d681SAndroid Build Coastguard Worker	br label %return
60*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %after_ret, %out
61*9880d681SAndroid Build Coastguard Worker	ret void
62*9880d681SAndroid Build Coastguard Worker}
63