blob: 491bb0eefac948a548a23ab5190c14d4e950ce1a [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
Chris Lattner055135d2005-09-20 01:43:41 +000045int %test3(int %X, bool %D, int* %AP, int* %BP) {
46E:
47 %C = seteq int %X, 0
48 br bool %C, label %T, label %F
49T:
50 call void %f3() ;; Inst in block.
51 %XX = load int* %AP
52 store int %XX, int* %BP
53 br bool %C, label %B, label %A
54A:
55 call void %f1()
56 br bool %D, label %T, label %F
57B:
58 call void %f2()
59 ret int 345
60F:
61 call void %f3()
62 ret int 123
63}