1 ; RUN: llvm-upgrade < %s | llvm-as | opt -mem2reg -disable-output
4 void %printk(int, ...) {
6 %flags = alloca uint ; <uint*> [#uses=2]
7 br bool false, label %then.0, label %endif.0
9 then.0: ; preds = %entry
12 endif.0: ; preds = %then.0, %entry
13 store uint 0, uint* %flags
16 loopentry: ; preds = %endif.3, %endif.0
17 br bool false, label %no_exit, label %loopexit
19 no_exit: ; preds = %loopentry
20 br bool false, label %then.1, label %endif.1
22 then.1: ; preds = %no_exit
23 br bool false, label %shortcirc_done.0, label %shortcirc_next.0
25 shortcirc_next.0: ; preds = %then.1
26 br label %shortcirc_done.0
28 shortcirc_done.0: ; preds = %shortcirc_next.0, %then.1
29 br bool false, label %shortcirc_done.1, label %shortcirc_next.1
31 shortcirc_next.1: ; preds = %shortcirc_done.0
32 br label %shortcirc_done.1
34 shortcirc_done.1: ; preds = %shortcirc_next.1, %shortcirc_done.0
35 br bool false, label %shortcirc_done.2, label %shortcirc_next.2
37 shortcirc_next.2: ; preds = %shortcirc_done.1
38 br label %shortcirc_done.2
40 shortcirc_done.2: ; preds = %shortcirc_next.2, %shortcirc_done.1
41 br bool false, label %then.2, label %endif.2
43 then.2: ; preds = %shortcirc_done.2
46 endif.2: ; preds = %then.2, %shortcirc_done.2
49 endif.1: ; preds = %endif.2, %no_exit
50 br bool false, label %then.3, label %endif.3
52 then.3: ; preds = %endif.1
55 endif.3: ; preds = %then.3, %endif.1
58 loopexit: ; preds = %loopentry
61 then.4: ; No predecessors!
62 %tmp.61 = load uint* %flags ; <uint> [#uses=0]
65 dead_block_after_goto: ; No predecessors!
68 endif.4: ; preds = %dead_block_after_goto, %loopexit
69 br bool false, label %then.5, label %else
71 then.5: ; preds = %endif.4
74 else: ; preds = %endif.4
77 endif.5: ; preds = %else, %then.5
80 out: ; preds = %endif.5, %then.4
83 after_ret: ; No predecessors!
86 return: ; preds = %after_ret, %out