blob: 2da837d73b8dff0526ae304aa4f8f1b90e960741 [file] [log] [blame]
Chris Lattnerecd7b6d2005-09-20 00:41:55 +00001; RUN: llvm-as < %s | opt -simplifycfg -adce | llvm-dis | not grep 'call void %f1' &&
2; RUN: llvm-as < %s | opt -simplifycfg -adce -disable-output
Chris Lattnerb6e2b7e2005-09-19 23:48:04 +00003declare void %f1()
4declare void %f2()
5declare void %f3()
6declare void %f4()
7
8implementation
9
Chris Lattnerecd7b6d2005-09-20 00:41:55 +000010int %test1(int %X, bool %D) {
11E:
12 %C = seteq int %X, 0
13 br bool %C, label %T, label %F
14T:
15 br bool %C, label %B, label %A
16A:
17 call void %f1()
18 br bool %D, label %T, label %F
19B:
20 call void %f2()
21 ret int 345
22F:
23 call void %f3()
24 ret int 123
25}
26
Chris Lattnerb6e2b7e2005-09-19 23:48:04 +000027int %test2(int %X, bool %D) {
28E:
29 %C = seteq int %X, 0
30 br bool %C, label %T, label %F
31T:
32 %P = phi bool [true, %E], [%C, %A]
33 br bool %P, label %B, label %A
34A:
35 call void %f1()
36 br bool %D, label %T, label %F
37B:
38 call void %f2()
39 ret int 345
40F:
41 call void %f3()
42 ret int 123
43}
44