[ARM] Better OR's for MVE compares
[llvm-core.git] / test / Transforms / LICM / 2006-09-12-DeadUserOfSunkInstr.ll
blob9763660ffb0bee4daa9406d496a87c74ed4b5f67
1 ; RUN: opt < %s -licm -disable-output
2 ; PR908
3 ; END.
5         %struct.alloc_chain = type { i8*, %struct.alloc_chain* }
6         %struct.oggpack_buffer = type { i32, i32, i8*, i8*, i32 }
7         %struct.vorbis_block = type { float**, %struct.oggpack_buffer, i32, i32, i32, i32, i32, i32, i64, i64, %struct.vorbis_dsp_state*, i8*, i32, i32, i32, %struct.alloc_chain*, i32, i32, i32, i32, i8* }
8         %struct.vorbis_dsp_state = type { i32, %struct.vorbis_info*, float**, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* }
9         %struct.vorbis_info = type { i32, i32, i32, i32, i32, i32, i32, i8* }
11 define fastcc void @_01forward() {
12 entry:
13         br i1 false, label %bb222.preheader, label %bb241
14 cond_true67:            ; preds = %cond_true87
15         br label %cond_next80
16 cond_next80:            ; preds = %cond_true87, %cond_true67
17         br label %bb83
18 bb83.preheader:         ; preds = %cond_true226
19         br i1 false, label %bb83.us.preheader, label %bb83.preheader1
20 bb83.us.preheader:              ; preds = %bb83.preheader
21         br label %bb83.us
22 bb83.us:                ; preds = %cond_next80.us, %bb83.us.preheader
23         br i1 false, label %cond_true87.us, label %cond_next92.loopexit2
24 cond_next80.us:         ; preds = %bb59.loopexit.us, %cond_true67.us
25         br label %bb83.us
26 cond_true67.us:         ; preds = %bb59.loopexit.us
27         br label %cond_next80.us
28 cond_next.us:           ; preds = %cond_true56.us, %cond_true38.us
29         br i1 false, label %cond_true56.us, label %bb59.loopexit.us
30 cond_true38.us:         ; preds = %cond_true56.us
31         br label %cond_next.us
32 cond_true56.us:         ; preds = %cond_true87.us, %cond_next.us
33         br i1 false, label %cond_true38.us, label %cond_next.us
34 cond_true87.us:         ; preds = %bb83.us
35         br label %cond_true56.us
36 bb59.loopexit.us:               ; preds = %cond_next.us
37         br i1 false, label %cond_true67.us, label %cond_next80.us
38 bb83.preheader1:                ; preds = %bb83.preheader
39         br label %bb83
40 bb83:           ; preds = %bb83.preheader1, %cond_next80
41         br i1 false, label %cond_next92.loopexit, label %cond_true87
42 cond_true87:            ; preds = %bb83
43         br i1 false, label %cond_true67, label %cond_next80
44 cond_next92.loopexit:           ; preds = %bb83
45         br label %cond_next92
46 cond_next92.loopexit2:          ; preds = %bb83.us
47         br label %cond_next92
48 cond_next92:            ; preds = %cond_true226, %cond_next92.loopexit2, %cond_next92.loopexit
49         br i1 false, label %cond_true218.loopexit, label %bb222
50 cond_true139:           ; preds = %cond_true202
51         br i1 false, label %cond_next195, label %cond_true155
52 cond_true155:           ; preds = %cond_true139
53         br i1 false, label %cond_true249.i.preheader, label %_encodepart.exit
54 cond_true.i:            ; preds = %cond_true115.i
55         br i1 false, label %bb60.i.preheader, label %cond_next97.i
56 bb60.i.preheader:               ; preds = %cond_true.i
57         br label %bb60.i
58 bb60.i:         ; preds = %cond_true63.i, %bb60.i.preheader
59         br i1 false, label %cond_true63.i, label %cond_next97.i.loopexit
60 cond_true63.i:          ; preds = %bb60.i
61         br i1 false, label %bb60.i, label %cond_next97.i.loopexit
62 bb86.i.preheader:               ; preds = %cond_true115.i
63         br label %bb86.i
64 bb86.i:         ; preds = %cond_true93.i, %bb86.i.preheader
65         br i1 false, label %cond_true93.i, label %cond_next97.i.loopexit3
66 cond_true93.i:          ; preds = %bb86.i
67         br i1 false, label %cond_next97.i.loopexit3, label %bb86.i
68 cond_next97.i.loopexit:         ; preds = %cond_true63.i, %bb60.i
69         br label %cond_next97.i
70 cond_next97.i.loopexit3:                ; preds = %cond_true93.i, %bb86.i
71         br label %cond_next97.i
72 cond_next97.i:          ; preds = %cond_next97.i.loopexit3, %cond_next97.i.loopexit, %cond_true.i
73         br i1 false, label %bb118.i.loopexit, label %cond_true115.i
74 cond_true115.i.preheader:               ; preds = %cond_true249.i
75         br label %cond_true115.i
76 cond_true115.i:         ; preds = %cond_true115.i.preheader, %cond_next97.i
77         br i1 false, label %cond_true.i, label %bb86.i.preheader
78 bb118.i.loopexit:               ; preds = %cond_next97.i
79         br label %bb118.i
80 bb118.i:                ; preds = %cond_true249.i, %bb118.i.loopexit
81         br i1 false, label %cond_next204.i, label %cond_true128.i
82 cond_true128.i:         ; preds = %bb118.i
83         br i1 false, label %cond_true199.i.preheader, label %cond_next204.i
84 cond_true199.i.preheader:               ; preds = %cond_true128.i
85         br label %cond_true199.i
86 cond_true199.i.us:              ; No predecessors!
87         br i1 false, label %cond_true167.i.us, label %cond_next187.i.us
88 cond_next187.i.us:              ; preds = %bb170.i.loopexit.us, %bb170.i.us.cond_next187.i.us_crit_edge, %cond_true199.i.us
89         unreachable
90 bb170.i.us.cond_next187.i.us_crit_edge:         ; preds = %bb170.i.loopexit.us
91         br label %cond_next187.i.us
92 cond_true167.i.us:              ; preds = %cond_true167.i.us, %cond_true199.i.us
93         br i1 false, label %cond_true167.i.us, label %bb170.i.loopexit.us
94 bb170.i.loopexit.us:            ; preds = %cond_true167.i.us
95         br i1 false, label %cond_next187.i.us, label %bb170.i.us.cond_next187.i.us_crit_edge
96 cond_true199.i:         ; preds = %cond_true199.i, %cond_true199.i.preheader
97         br i1 false, label %cond_next204.i.loopexit, label %cond_true199.i
98 cond_next204.i.loopexit:                ; preds = %cond_true199.i
99         br label %cond_next204.i
100 cond_next204.i:         ; preds = %cond_next204.i.loopexit, %cond_true128.i, %bb118.i
101         br label %bb233.i
102 cond_true230.i:         ; No predecessors!
103         %exitcond155 = icmp eq i32 0, %tmp16.i          ; <i1> [#uses=0]
104         unreachable
105 bb233.i:                ; preds = %cond_next204.i
106         br i1 false, label %_encodepart.exit.loopexit, label %cond_true249.i
107 cond_true249.i.preheader:               ; preds = %cond_true155
108         br label %cond_true249.i
109 cond_true249.i:         ; preds = %cond_true249.i.preheader, %bb233.i
110         %tmp16.i = bitcast i32 0 to i32         ; <i32> [#uses=1]
111         br i1 false, label %cond_true115.i.preheader, label %bb118.i
112 _encodepart.exit.loopexit:              ; preds = %bb233.i
113         br label %_encodepart.exit
114 _encodepart.exit:               ; preds = %_encodepart.exit.loopexit, %cond_true155
115         br label %cond_next195
116 cond_next195:           ; preds = %cond_true202, %_encodepart.exit, %cond_true139
117         br i1 false, label %bb205.loopexit, label %cond_true202
118 cond_true202.preheader:         ; preds = %cond_true218
119         br label %cond_true202
120 cond_true202:           ; preds = %cond_true202.preheader, %cond_next195
121         br i1 false, label %cond_next195, label %cond_true139
122 bb205.loopexit:         ; preds = %cond_next195
123         br label %bb205
124 bb205:          ; preds = %cond_true218, %bb205.loopexit
125         br i1 false, label %cond_true218, label %bb222.outer105.loopexit
126 cond_true218.loopexit:          ; preds = %cond_next92
127         br label %cond_true218
128 cond_true218:           ; preds = %cond_true218.loopexit, %bb205
129         br i1 false, label %cond_true202.preheader, label %bb205
130 bb222.preheader:                ; preds = %entry
131         br label %bb222.outer
132 bb222.outer:            ; preds = %bb229, %bb222.preheader
133         br label %bb222.outer105
134 bb222.outer105.loopexit:                ; preds = %bb205
135         br label %bb222.outer105
136 bb222.outer105:         ; preds = %bb222.outer105.loopexit, %bb222.outer
137         br label %bb222
138 bb222:          ; preds = %bb222.outer105, %cond_next92
139         br i1 false, label %cond_true226, label %bb229
140 cond_true226:           ; preds = %bb222
141         br i1 false, label %bb83.preheader, label %cond_next92
142 bb229:          ; preds = %bb222
143         br i1 false, label %bb222.outer, label %bb241.loopexit
144 bb241.loopexit:         ; preds = %bb229
145         br label %bb241
146 bb241:          ; preds = %bb241.loopexit, %entry
147         ret void