1; RUN: opt < %s -loop-simplify -loop-extract -disable-output
2
3declare i32 @_IO_getc()
4
5declare void @__errno_location()
6
7define void @yylex() personality i32 (...)* @__gcc_personality_v0 {
8entry:
9	switch i32 0, label %label.126 [
10		 i32 0, label %return
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
37		 i32 95, label %letter
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
61		 i32 99, label %letter
62		 i32 98, label %letter
63		 i32 97, label %letter
64		 i32 90, label %letter
65		 i32 89, label %letter
66		 i32 88, label %letter
67		 i32 87, label %letter
68		 i32 86, label %letter
69		 i32 85, label %letter
70		 i32 84, label %letter
71		 i32 83, label %letter
72		 i32 82, label %letter
73		 i32 81, label %letter
74		 i32 80, label %letter
75		 i32 79, label %letter
76		 i32 78, label %letter
77		 i32 77, label %letter
78		 i32 75, label %letter
79		 i32 74, label %letter
80		 i32 73, label %letter
81		 i32 72, label %letter
82		 i32 71, label %letter
83		 i32 70, label %letter
84		 i32 69, label %letter
85		 i32 68, label %letter
86		 i32 67, label %letter
87		 i32 66, label %letter
88		 i32 65, 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
93	]
94
95label.10:		; preds = %entry
96	ret void
97
98label.11:		; preds = %entry
99	ret void
100
101label.12:		; preds = %entry
102	ret void
103
104label.13:		; preds = %entry
105	ret void
106
107letter:		; 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
108	ret void
109
110loopexit.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
114	]
115
116then.20:		; preds = %loopexit.2
117	switch i32 0, label %else.4 [
118		 i32 120, label %then.21
119		 i32 88, label %then.21
120	]
121
122then.21:		; preds = %then.20, %then.20
123	ret void
124
125else.4:		; preds = %then.20
126	ret void
127
128shortcirc_next.14:		; preds = %loopexit.2
129	ret void
130
131endif.38:		; preds = %loopexit.2
132	br i1 false, label %then.40, label %then.39
133
134then.39:		; preds = %endif.38
135	ret void
136
137then.40:		; preds = %endif.38
138	invoke void @__errno_location( )
139			to label %switchexit.2 unwind label %LongJmpBlkPre
140
141loopentry.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
149	]
150
151label.78:		; preds = %loopentry.6, %loopentry.6
152	ret void
153
154label.80:		; preds = %loopentry.6, %loopentry.6
155	ret void
156
157label.82:		; preds = %loopentry.6, %loopentry.6
158	%c.0.15.5 = phi i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ]		; <i32> [#uses=0]
159	ret void
160
161switchexit.2:		; preds = %loopentry.6, %then.40
162	br i1 false, label %endif.51, label %loopexit.6
163
164endif.51:		; preds = %switchexit.2
165	br i1 false, label %endif.52, label %then.52
166
167then.52:		; preds = %endif.51
168	ret void
169
170endif.52:		; preds = %endif.51
171	%tmp.79417 = invoke i32 @_IO_getc( )
172			to label %loopentry.6 unwind label %LongJmpBlkPre		; <i32> [#uses=2]
173
174loopexit.6:		; preds = %switchexit.2
175	ret void
176
177char_constant:		; preds = %entry
178	ret void
179
180string_constant:		; preds = %entry
181	ret void
182
183combine:		; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
184	ret void
185
186label.126:		; preds = %entry
187	ret void
188
189return:		; preds = %entry
190	ret void
191
192LongJmpBlkPre:		; preds = %endif.52, %then.40
193        %exn = landingpad { i8*, i32 }
194                 catch i8* null
195	ret void
196}
197
198declare i32 @__gcc_personality_v0(...)
199