fix a globalopt crash on two Adobe-C++ testcases that the recent
[llvm.git] / test / Transforms / CodeExtractor / 2004-03-13-LoopExtractorCrash.ll
blob3d0339bc2dbb16a824cdc4e3406f7bc2d531e862
1 ; RUN: opt < %s -loop-extract -disable-output
3 define void @solve() {
4 entry:
5         br label %loopentry.0
7 loopentry.0:            ; preds = %endif.0, %entry
8         br i1 false, label %no_exit.0, label %loopexit.0
10 no_exit.0:              ; preds = %loopentry.0
11         br i1 false, label %then.0, label %endif.0
13 then.0:         ; preds = %no_exit.0
14         br i1 false, label %shortcirc_done, label %shortcirc_next
16 shortcirc_next:         ; preds = %then.0
17         br label %shortcirc_done
19 shortcirc_done:         ; preds = %shortcirc_next, %then.0
20         br i1 false, label %then.1, label %endif.1
22 then.1:         ; preds = %shortcirc_done
23         br i1 false, label %cond_true, label %cond_false
25 cond_true:              ; preds = %then.1
26         br label %cond_continue
28 cond_false:             ; preds = %then.1
29         br label %cond_continue
31 cond_continue:          ; preds = %cond_false, %cond_true
32         br label %return
34 after_ret.0:            ; No predecessors!
35         br label %endif.1
37 endif.1:                ; preds = %after_ret.0, %shortcirc_done
38         br label %endif.0
40 endif.0:                ; preds = %endif.1, %no_exit.0
41         br label %loopentry.0
43 loopexit.0:             ; preds = %loopentry.0
44         br i1 false, label %then.2, label %endif.2
46 then.2:         ; preds = %loopexit.0
47         br i1 false, label %then.3, label %endif.3
49 then.3:         ; preds = %then.2
50         br label %return
52 after_ret.1:            ; No predecessors!
53         br label %endif.3
55 endif.3:                ; preds = %after_ret.1, %then.2
56         br label %endif.2
58 endif.2:                ; preds = %endif.3, %loopexit.0
59         br label %loopentry.1
61 loopentry.1:            ; preds = %no_exit.1, %endif.2
62         br i1 false, label %no_exit.1, label %loopexit.1
64 no_exit.1:              ; preds = %loopentry.1
65         br label %loopentry.1
67 loopexit.1:             ; preds = %loopentry.1
68         br label %return
70 after_ret.2:            ; No predecessors!
71         br label %return
73 return:         ; preds = %after_ret.2, %loopexit.1, %then.3, %cond_continue
74         ret void