1 ; RUN: llvm-upgrade < %s | llvm-as | opt -predsimplify -instcombine -simplifycfg | llvm-dis | grep -v declare | not grep fail &&
2 ; RUN: llvm-upgrade < %s | llvm-as | opt -predsimplify -instcombine -simplifycfg | llvm-dis | grep -v declare | grep -c pass | grep 4
7 br bool %A, label %then.1, label %else.1
10 br bool %B, label %then.2, label %else.1
12 call void (...)* %fail( )
22 br bool %A, label %then.1, label %else.1
24 br bool %B, label %then.2, label %else.1
26 call void (...)* %fail( )
36 br bool %A, label %then.1, label %else.1
38 br bool %B, label %then.2, label %else.1
40 call void (...)* %fail( )
46 void %test4(int %x, int %y) {
51 br bool %C, label %then.1, label %else.1
54 br bool %D, label %then.2, label %else.2
57 br bool %E, label %else.1, label %else.2
61 call void (...)* %fail( )
68 br bool %A, label %then.1, label %else.1
72 call void (...)* %fail( )
76 br bool %B, label %then.2, label %then.1
79 void %test6(int %x, int %y) {
84 br bool %C, label %then.1, label %else.1
88 call void (...)* %fail( )
92 br bool %D, label %then.2, label %else.2
95 br bool %E, label %then.1, label %then.2
101 %B = xor bool %A, true
102 br bool %B, label %then.1, label %else.1
105 br bool %C, label %then.2, label %else.1
107 call void (...)* %fail( )
113 void %test8(int %x) {
117 br bool %B, label %then.1, label %then.2
120 br bool %C, label %then.2, label %else.2
124 call void (...)* %fail( )
128 void %test9(int %y, int %z) {
134 br bool %C, label %cond_true, label %return
138 br bool %D, label %then, label %oops
141 call void (...)* %pass( )
145 call void (...)* %fail( )
155 %B = seteq int* %A, null
156 br bool %B, label %cond_true, label %cond_false
159 call void (...)* %fail ( )
163 call void (...)* %pass ( )
167 void %switch1(int %x) {
169 %A = seteq int %x, 10
170 br bool %A, label %return, label %cond_false
173 switch int %x, label %return [
179 call void (...)* %pass( )
183 call void (...)* %fail( )
190 void %switch2(int %x) {
192 %A = seteq int %x, 10
193 br bool %A, label %return, label %cond_false
196 switch int %x, label %return [
204 br bool %B, label %then2, label %return
207 call void (...)* %pass( )
214 void %switch3(int %x) {
216 %A = seteq int %x, 10
217 br bool %A, label %return, label %cond_false
220 switch int %x, label %return [
227 br bool %B, label %return, label %oops
230 call void (...)* %fail( )
237 void %switch4(int %x) {
239 %A = seteq int %x, 10
240 br bool %A, label %then1, label %cond_false
243 switch int %x, label %default [
256 br bool %B, label %oops, label %then1
259 call void (...)* %fail( )
263 void %select1(int %x) {
265 %A = seteq int %x, 10
266 %B = select bool %A, int 1, int 2
268 br bool %C, label %then, label %else
271 br bool %A, label %return, label %oops
274 br bool %A, label %oops, label %return
277 call void (...)* %fail( )
284 void %select2(int %x) {
286 %A = seteq int %x, 10
287 %B = select bool %A, int 1, int 2
289 br bool %A, label %then, label %else
292 br bool %C, label %return, label %oops
295 br bool %C, label %oops, label %return
298 call void (...)* %fail( )
305 declare void %fail(...)
307 declare void %pass(...)