xref: /aosp_15_r20/external/llvm/test/CodeGen/Generic/2006-09-06-SwitchLowering.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @foo() {
4*9880d681SAndroid Build Coastguard Worker	br label %cond_true813.i
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workercond_true813.i:		; preds = %0
7*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_true818.i, label %cond_next1146.i
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workercond_true818.i:		; preds = %cond_true813.i
10*9880d681SAndroid Build Coastguard Worker	br i1 false, label %recog_memoized.exit52, label %cond_next1146.i
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerrecog_memoized.exit52:		; preds = %cond_true818.i
13*9880d681SAndroid Build Coastguard Worker	switch i32 0, label %bb886.i.preheader [
14*9880d681SAndroid Build Coastguard Worker		 i32 0, label %bb907.i
15*9880d681SAndroid Build Coastguard Worker		 i32 44, label %bb866.i
16*9880d681SAndroid Build Coastguard Worker		 i32 103, label %bb874.i
17*9880d681SAndroid Build Coastguard Worker		 i32 114, label %bb874.i
18*9880d681SAndroid Build Coastguard Worker	]
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerbb857.i:		; preds = %bb886.i, %bb866.i
21*9880d681SAndroid Build Coastguard Worker	%tmp862.i494.24 = phi i8* [ null, %bb866.i ], [ %tmp862.i494.26, %bb886.i ]		; <i8*> [#uses=4]
22*9880d681SAndroid Build Coastguard Worker	switch i32 0, label %bb886.i.preheader [
23*9880d681SAndroid Build Coastguard Worker		 i32 0, label %bb907.i
24*9880d681SAndroid Build Coastguard Worker		 i32 44, label %bb866.i
25*9880d681SAndroid Build Coastguard Worker		 i32 103, label %bb874.i
26*9880d681SAndroid Build Coastguard Worker		 i32 114, label %bb874.i
27*9880d681SAndroid Build Coastguard Worker	]
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerbb866.i.loopexit:		; preds = %bb874.i
30*9880d681SAndroid Build Coastguard Worker	br label %bb866.i
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerbb866.i.loopexit31:		; preds = %cond_true903.i
33*9880d681SAndroid Build Coastguard Worker	br label %bb866.i
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Workerbb866.i:		; preds = %bb866.i.loopexit31, %bb866.i.loopexit, %bb857.i, %recog_memoized.exit52
36*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb907.i, label %bb857.i
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerbb874.i.preheader.loopexit:		; preds = %cond_true903.i, %cond_true903.i
39*9880d681SAndroid Build Coastguard Worker	ret void
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerbb874.i:		; preds = %bb857.i, %bb857.i, %recog_memoized.exit52, %recog_memoized.exit52
42*9880d681SAndroid Build Coastguard Worker	%tmp862.i494.25 = phi i8* [ %tmp862.i494.24, %bb857.i ], [ %tmp862.i494.24, %bb857.i ], [ undef, %recog_memoized.exit52 ], [ undef, %recog_memoized.exit52 ]		; <i8*> [#uses=1]
43*9880d681SAndroid Build Coastguard Worker	switch i32 0, label %bb886.i.preheader.loopexit [
44*9880d681SAndroid Build Coastguard Worker		 i32 0, label %bb907.i
45*9880d681SAndroid Build Coastguard Worker		 i32 44, label %bb866.i.loopexit
46*9880d681SAndroid Build Coastguard Worker		 i32 103, label %bb874.i.backedge
47*9880d681SAndroid Build Coastguard Worker		 i32 114, label %bb874.i.backedge
48*9880d681SAndroid Build Coastguard Worker	]
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerbb874.i.backedge:		; preds = %bb874.i, %bb874.i
51*9880d681SAndroid Build Coastguard Worker	ret void
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerbb886.i.preheader.loopexit:		; preds = %bb874.i
54*9880d681SAndroid Build Coastguard Worker	ret void
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workerbb886.i.preheader:		; preds = %bb857.i, %recog_memoized.exit52
57*9880d681SAndroid Build Coastguard Worker	%tmp862.i494.26 = phi i8* [ undef, %recog_memoized.exit52 ], [ %tmp862.i494.24, %bb857.i ]		; <i8*> [#uses=1]
58*9880d681SAndroid Build Coastguard Worker	br label %bb886.i
59*9880d681SAndroid Build Coastguard Worker
60*9880d681SAndroid Build Coastguard Workerbb886.i:		; preds = %cond_true903.i, %bb886.i.preheader
61*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb857.i, label %cond_true903.i
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Workercond_true903.i:		; preds = %bb886.i
64*9880d681SAndroid Build Coastguard Worker	switch i32 0, label %bb886.i [
65*9880d681SAndroid Build Coastguard Worker		 i32 0, label %bb907.i
66*9880d681SAndroid Build Coastguard Worker		 i32 44, label %bb866.i.loopexit31
67*9880d681SAndroid Build Coastguard Worker		 i32 103, label %bb874.i.preheader.loopexit
68*9880d681SAndroid Build Coastguard Worker		 i32 114, label %bb874.i.preheader.loopexit
69*9880d681SAndroid Build Coastguard Worker	]
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Workerbb907.i:		; preds = %cond_true903.i, %bb874.i, %bb866.i, %bb857.i, %recog_memoized.exit52
72*9880d681SAndroid Build Coastguard Worker	%tmp862.i494.0 = phi i8* [ %tmp862.i494.24, %bb857.i ], [ null, %bb866.i ], [ undef, %recog_memoized.exit52 ], [ %tmp862.i494.25, %bb874.i ], [ null, %cond_true903.i ]		; <i8*> [#uses=1]
73*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_next1146.i, label %cond_true910.i
74*9880d681SAndroid Build Coastguard Worker
75*9880d681SAndroid Build Coastguard Workercond_true910.i:		; preds = %bb907.i
76*9880d681SAndroid Build Coastguard Worker	ret void
77*9880d681SAndroid Build Coastguard Worker
78*9880d681SAndroid Build Coastguard Workercond_next1146.i:		; preds = %bb907.i, %cond_true818.i, %cond_true813.i
79*9880d681SAndroid Build Coastguard Worker	%tmp862.i494.1 = phi i8* [ %tmp862.i494.0, %bb907.i ], [ undef, %cond_true818.i ], [ undef, %cond_true813.i ]		; <i8*> [#uses=0]
80*9880d681SAndroid Build Coastguard Worker	ret void
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Workerbb2060.i:		; No predecessors!
83*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_true2064.i, label %bb2067.i
84*9880d681SAndroid Build Coastguard Worker
85*9880d681SAndroid Build Coastguard Workercond_true2064.i:		; preds = %bb2060.i
86*9880d681SAndroid Build Coastguard Worker	unreachable
87*9880d681SAndroid Build Coastguard Worker
88*9880d681SAndroid Build Coastguard Workerbb2067.i:		; preds = %bb2060.i
89*9880d681SAndroid Build Coastguard Worker	ret void
90*9880d681SAndroid Build Coastguard Worker
91*9880d681SAndroid Build Coastguard Workercond_next3473:		; No predecessors!
92*9880d681SAndroid Build Coastguard Worker	ret void
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Workercond_next3521:		; No predecessors!
95*9880d681SAndroid Build Coastguard Worker	ret void
96*9880d681SAndroid Build Coastguard Worker}
97