1 ; RUN: opt < %s -loop-extract -disable-output
3 declare i32 @_IO_getc()
5 declare void @__errno_location()
9 switch i32 0, label %label.126 [
11 i32 61, label %combine
12 i32 33, label %combine
13 i32 94, label %combine
14 i32 37, label %combine
15 i32 47, label %combine
16 i32 42, label %combine
17 i32 62, label %combine
18 i32 60, label %combine
19 i32 58, label %combine
20 i32 124, label %combine
21 i32 38, label %combine
22 i32 45, label %combine
23 i32 43, label %combine
24 i32 34, label %string_constant
25 i32 39, label %char_constant
26 i32 46, label %loopexit.2
27 i32 57, label %loopexit.2
28 i32 56, label %loopexit.2
29 i32 55, label %loopexit.2
30 i32 54, label %loopexit.2
31 i32 53, label %loopexit.2
32 i32 52, label %loopexit.2
33 i32 51, label %loopexit.2
34 i32 50, label %loopexit.2
35 i32 49, label %loopexit.2
36 i32 48, label %loopexit.2
38 i32 122, label %letter
39 i32 121, label %letter
40 i32 120, label %letter
41 i32 119, label %letter
42 i32 118, label %letter
43 i32 117, label %letter
44 i32 116, label %letter
45 i32 115, label %letter
46 i32 114, label %letter
47 i32 113, label %letter
48 i32 112, label %letter
49 i32 111, label %letter
50 i32 110, label %letter
51 i32 109, label %letter
52 i32 108, label %letter
53 i32 107, label %letter
54 i32 106, label %letter
55 i32 105, label %letter
56 i32 104, label %letter
57 i32 103, label %letter
58 i32 102, label %letter
59 i32 101, label %letter
60 i32 100, label %letter
89 i32 64, label %label.13
90 i32 76, label %label.12
91 i32 36, label %label.11
92 i32 -1, label %label.10
95 label.10: ; preds = %entry
98 label.11: ; preds = %entry
101 label.12: ; preds = %entry
104 label.13: ; preds = %entry
107 letter: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
110 loopexit.2: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
111 switch i32 0, label %shortcirc_next.14 [
112 i32 48, label %then.20
113 i32 46, label %endif.38
116 then.20: ; preds = %loopexit.2
117 switch i32 0, label %else.4 [
118 i32 120, label %then.21
119 i32 88, label %then.21
122 then.21: ; preds = %then.20, %then.20
125 else.4: ; preds = %then.20
128 shortcirc_next.14: ; preds = %loopexit.2
131 endif.38: ; preds = %loopexit.2
132 br i1 false, label %then.40, label %then.39
134 then.39: ; preds = %endif.38
137 then.40: ; preds = %endif.38
138 invoke void @__errno_location( )
139 to label %switchexit.2 unwind label %LongJmpBlkPre
141 loopentry.6: ; preds = %endif.52
142 switch i32 0, label %switchexit.2 [
143 i32 73, label %label.82
144 i32 105, label %label.82
145 i32 76, label %label.80
146 i32 108, label %label.80
147 i32 70, label %label.78
148 i32 102, label %label.78
151 label.78: ; preds = %loopentry.6, %loopentry.6
154 label.80: ; preds = %loopentry.6, %loopentry.6
157 label.82: ; preds = %loopentry.6, %loopentry.6
158 %c.0.15.5 = phi i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; <i32> [#uses=0]
161 switchexit.2: ; preds = %loopentry.6, %then.40
162 br i1 false, label %endif.51, label %loopexit.6
164 endif.51: ; preds = %switchexit.2
165 br i1 false, label %endif.52, label %then.52
167 then.52: ; preds = %endif.51
170 endif.52: ; preds = %endif.51
171 %tmp.79417 = invoke i32 @_IO_getc( )
172 to label %loopentry.6 unwind label %LongJmpBlkPre ; <i32> [#uses=2]
174 loopexit.6: ; preds = %switchexit.2
177 char_constant: ; preds = %entry
180 string_constant: ; preds = %entry
183 combine: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
186 label.126: ; preds = %entry
189 return: ; preds = %entry
192 LongJmpBlkPre: ; preds = %endif.52, %then.40