blob: 7596a56b81229c427da39f6ec97e32e4468911d5 [file] [log] [blame]
Florian Hahn3c696b32019-05-08 09:09:54 +00001; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -ipsccp < %s -S | FileCheck %s
3; RUN: opt -passes=ipsccp < %s -S | FileCheck %s
4
5define void @barney() {
6; CHECK-LABEL: @barney(
7; CHECK-NEXT: bb:
8; CHECK-NEXT: br label %bb9
9; CHECK: bb6:
10; CHECK-NEXT: unreachable
11; CHECK: bb9:
12; CHECK-NEXT: unreachable
13;
14bb:
15 br label %bb9
16
17bb6: ; preds = %bb9
18 unreachable
19
20bb7: ; preds = %bb9
21 unreachable
22
23bb9: ; preds = %bb
24 switch i16 0, label %bb6 [
25 i16 61, label %bb7
26 ]
27}
28
29define void @blam() {
30; CHECK-LABEL: @blam(
31; CHECK-NEXT: bb:
32; CHECK-NEXT: br label %bb16
33; CHECK: bb16:
34; CHECK-NEXT: br label %bb38
35; CHECK: bb38:
36; CHECK-NEXT: unreachable
37;
38bb:
39 br label %bb16
40
41bb16: ; preds = %bb
42 switch i32 0, label %bb38 [
43 i32 66, label %bb17
44 i32 63, label %bb18
45 i32 86, label %bb19
46 ]
47
48bb17: ; preds = %bb16
49 unreachable
50
51bb18: ; preds = %bb16
52 unreachable
53
54bb19: ; preds = %bb16
55 unreachable
56
57bb38: ; preds = %bb16
58 unreachable
59}
60
61
62define void @hoge() {
63; CHECK-LABEL: @hoge(
64; CHECK-NEXT: bb:
65; CHECK-NEXT: br label %bb2
66; CHECK: bb2:
67; CHECK-NEXT: unreachable
68; CHECK: bb3:
69; CHECK-NEXT: unreachable
70;
71bb:
72 switch i16 undef, label %bb1 [
73 i16 135, label %bb2
74 i16 66, label %bb2
75 ]
76
77bb1: ; preds = %bb
78 ret void
79
80bb2: ; preds = %bb, %bb
81 switch i16 0, label %bb3 [
82 i16 61, label %bb4
83 i16 54, label %bb4
84 i16 49, label %bb4
85 ]
86
87bb3: ; preds = %bb2
88 unreachable
89
90bb4: ; preds = %bb2, %bb2, %bb2
91 unreachable
92}