1 ; RUN: llvm-as < %s | llc
3 ;; Register allocation is doing a very poor job on this routine from yyparse
5 ;; -- at least two long-lived values are being allocated to %o? registers
6 ;; -- even worse, those registers are being saved and restored repeatedly
7 ;; at function calls, even though there are no intervening uses.
8 ;; -- outgoing args of some function calls have to be swapped, causing
9 ;; another write/read from stack to do the exchange (use -dregalloc=y).
11 %Arity = type %struct.arity*
12 %Binding = type %struct.binding*
13 %DeltaCost = type [4 x i16]
14 %Dimension = type %struct.dimension*
15 %Index_Map = type { i32, %Item_Set* }
16 %IntList = type %struct.intlist*
17 %Item = type { %DeltaCost, %Rule }
18 %ItemArray = type %Item*
19 %Item_Set = type %struct.item_set*
20 %List = type %struct.list*
21 %Mapping = type %struct.mapping*
22 %NonTerminal = type %struct.nonterminal*
23 %Operator = type %struct.operator*
24 %Pattern = type %struct.pattern*
25 %PatternAST = type %struct.patternAST*
26 %Plank = type %struct.plank*
27 %PlankMap = type %struct.plankMap*
28 %ReadFn = type i32 ()*
29 %Rule = type %struct.rule*
30 %RuleAST = type %struct.ruleAST*
31 %StateMap = type %struct.stateMap*
32 %StrTableElement = type %struct.strTableElement*
33 %Symbol = type %struct.symbol*
34 %Table = type %struct.table*
35 %YYSTYPE = type { %IntList }
36 %struct.arity = type { i32, %List }
37 %struct.binding = type { i8*, i32 }
38 %struct.dimension = type { i16*, %Index_Map, %Mapping, i32, %PlankMap }
39 %struct.index_map = type { i32, %Item_Set* }
40 %struct.intlist = type { i32, %IntList }
41 %struct.item = type { %DeltaCost, %Rule }
42 %struct.item_set = type { i32, i32, %Operator, [2 x %Item_Set], %Item_Set, i16*, %ItemArray, %ItemArray }
43 %struct.list = type { i8*, %List }
44 %struct.mapping = type { %List*, i32, i32, i32, %Item_Set* }
45 %struct.nonterminal = type { i8*, i32, i32, i32, %PlankMap, %Rule }
46 %struct.operator = type { i8*, i32, i32, i32, i32, i32, %Table }
47 %struct.pattern = type { %NonTerminal, %Operator, [2 x %NonTerminal] }
48 %struct.patternAST = type { %Symbol, i8*, %List }
49 %struct.plank = type { i8*, %List, i32 }
50 %struct.plankMap = type { %List, i32, %StateMap }
51 %struct.rule = type { %DeltaCost, i32, i32, i32, %NonTerminal, %Pattern, i32 }
52 %struct.ruleAST = type { i8*, %PatternAST, i32, %IntList, %Rule, %StrTableElement, %StrTableElement }
53 %struct.stateMap = type { i8*, %Plank, i32, i16* }
54 %struct.strTableElement = type { i8*, %IntList, i8* }
55 %struct.symbol = type { i8*, i32, { %Operator } }
56 %struct.table = type { %Operator, %List, i16*, [2 x %Dimension], %Item_Set* }
57 @yylval = external global %YYSTYPE ; <%YYSTYPE*> [#uses=1]
58 @yylhs = external global [25 x i16] ; <[25 x i16]*> [#uses=1]
59 @yylen = external global [25 x i16] ; <[25 x i16]*> [#uses=1]
60 @yydefred = external global [43 x i16] ; <[43 x i16]*> [#uses=1]
61 @yydgoto = external global [12 x i16] ; <[12 x i16]*> [#uses=1]
62 @yysindex = external global [43 x i16] ; <[43 x i16]*> [#uses=2]
63 @yyrindex = external global [43 x i16] ; <[43 x i16]*> [#uses=1]
64 @yygindex = external global [12 x i16] ; <[12 x i16]*> [#uses=1]
65 @yytable = external global [263 x i16] ; <[263 x i16]*> [#uses=4]
66 @yycheck = external global [263 x i16] ; <[263 x i16]*> [#uses=4]
67 @yynerrs = external global i32 ; <i32*> [#uses=3]
68 @yyerrflag = external global i32 ; <i32*> [#uses=6]
69 @yychar = external global i32 ; <i32*> [#uses=15]
70 @yyssp = external global i16* ; <i16**> [#uses=15]
71 @yyvsp = external global %YYSTYPE* ; <%YYSTYPE**> [#uses=30]
72 @yyval = external global %YYSTYPE ; <%YYSTYPE*> [#uses=1]
73 @yyss = external global i16* ; <i16**> [#uses=3]
74 @yysslim = external global i16* ; <i16**> [#uses=3]
75 @yyvs = external global %YYSTYPE* ; <%YYSTYPE**> [#uses=1]
76 @.LC01 = external global [13 x i8] ; <[13 x i8]*> [#uses=1]
77 @.LC1 = external global [20 x i8] ; <[20 x i8]*> [#uses=1]
79 define i32 @yyparse() {
81 store i32 0, i32* @yynerrs
82 store i32 0, i32* @yyerrflag
83 store i32 -1, i32* @yychar
84 %reg113 = load i16** @yyss ; <i16*> [#uses=1]
85 %cond581 = icmp ne i16* %reg113, null ; <i1> [#uses=1]
86 br i1 %cond581, label %bb3, label %bb2
89 %reg584 = call i32 @yygrowstack( ) ; <i32> [#uses=1]
90 %cond584 = icmp ne i32 %reg584, 0 ; <i1> [#uses=1]
91 br i1 %cond584, label %bb113, label %bb3
93 bb3: ; preds = %bb2, %bb0
94 %reg115 = load i16** @yyss ; <i16*> [#uses=1]
95 store i16* %reg115, i16** @yyssp
96 %reg116 = load %YYSTYPE** @yyvs ; <%YYSTYPE*> [#uses=1]
97 store %YYSTYPE* %reg116, %YYSTYPE** @yyvsp
98 %reg117 = load i16** @yyssp ; <i16*> [#uses=1]
99 store i16 0, i16* %reg117
102 bb4: ; preds = %bb112, %bb102, %bb35, %bb31, %bb15, %bb14, %bb3
103 %reg458 = phi i32 [ %reg476, %bb112 ], [ 1, %bb102 ], [ %reg458, %bb35 ], [ %cast768, %bb31 ], [ %cast658, %bb15 ], [ %cast658, %bb14 ], [ 0, %bb3 ] ; <i32> [#uses=2]
104 %reg458-idxcast = zext i32 %reg458 to i64 ; <i64> [#uses=3]
105 %reg594 = getelementptr [43 x i16]* @yydefred, i64 0, i64 %reg458-idxcast ; <i16*> [#uses=1]
106 %reg125 = load i16* %reg594 ; <i16> [#uses=1]
107 %cast599 = sext i16 %reg125 to i32 ; <i32> [#uses=2]
108 %cond600 = icmp ne i32 %cast599, 0 ; <i1> [#uses=1]
109 br i1 %cond600, label %bb36, label %bb5
112 %reg127 = load i32* @yychar ; <i32> [#uses=1]
113 %cond603 = icmp sge i32 %reg127, 0 ; <i1> [#uses=1]
114 br i1 %cond603, label %bb8, label %bb6
117 %reg607 = call i32 @yylex( ) ; <i32> [#uses=1]
118 store i32 %reg607, i32* @yychar
119 %reg129 = load i32* @yychar ; <i32> [#uses=1]
120 %cond609 = icmp sge i32 %reg129, 0 ; <i1> [#uses=1]
121 br i1 %cond609, label %bb8, label %bb7
124 store i32 0, i32* @yychar
127 bb8: ; preds = %bb7, %bb6, %bb5
128 %reg615 = getelementptr [43 x i16]* @yysindex, i64 0, i64 %reg458-idxcast ; <i16*> [#uses=1]
129 %reg137 = load i16* %reg615 ; <i16> [#uses=1]
130 %cast620 = sext i16 %reg137 to i32 ; <i32> [#uses=2]
131 %cond621 = icmp eq i32 %cast620, 0 ; <i1> [#uses=1]
132 br i1 %cond621, label %bb16, label %bb9
135 %reg139 = load i32* @yychar ; <i32> [#uses=2]
136 %reg460 = add i32 %cast620, %reg139 ; <i32> [#uses=3]
137 %cond624 = icmp slt i32 %reg460, 0 ; <i1> [#uses=1]
138 br i1 %cond624, label %bb16, label %bb10
141 %cond627 = icmp sgt i32 %reg460, 262 ; <i1> [#uses=1]
142 br i1 %cond627, label %bb16, label %bb11
144 bb11: ; preds = %bb10
145 %reg460-idxcast = sext i32 %reg460 to i64 ; <i64> [#uses=2]
146 %reg632 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg460-idxcast ; <i16*> [#uses=1]
147 %reg148 = load i16* %reg632 ; <i16> [#uses=1]
148 %cast637 = sext i16 %reg148 to i32 ; <i32> [#uses=1]
149 %cond639 = icmp ne i32 %cast637, %reg139 ; <i1> [#uses=1]
150 br i1 %cond639, label %bb16, label %bb12
152 bb12: ; preds = %bb11
153 %reg150 = load i16** @yyssp ; <i16*> [#uses=1]
154 %cast640 = bitcast i16* %reg150 to i8* ; <i8*> [#uses=1]
155 %reg151 = load i16** @yysslim ; <i16*> [#uses=1]
156 %cast641 = bitcast i16* %reg151 to i8* ; <i8*> [#uses=1]
157 %cond642 = icmp ult i8* %cast640, %cast641 ; <i1> [#uses=1]
158 br i1 %cond642, label %bb14, label %bb13
160 bb13: ; preds = %bb12
161 %reg644 = call i32 @yygrowstack( ) ; <i32> [#uses=1]
162 %cond644 = icmp ne i32 %reg644, 0 ; <i1> [#uses=1]
163 br i1 %cond644, label %bb113, label %bb14
165 bb14: ; preds = %bb13, %bb12
166 %reg153 = load i16** @yyssp ; <i16*> [#uses=1]
167 %reg647 = getelementptr i16* %reg153, i64 1 ; <i16*> [#uses=2]
168 store i16* %reg647, i16** @yyssp
169 %reg653 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg460-idxcast ; <i16*> [#uses=1]
170 %reg162 = load i16* %reg653 ; <i16> [#uses=2]
171 %cast658 = sext i16 %reg162 to i32 ; <i32> [#uses=2]
172 store i16 %reg162, i16* %reg647
173 %reg164 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
174 %reg661 = getelementptr %YYSTYPE* %reg164, i64 1 ; <%YYSTYPE*> [#uses=1]
175 store %YYSTYPE* %reg661, %YYSTYPE** @yyvsp
176 %reg167 = load %IntList* getelementptr (%YYSTYPE* @yylval, i64 0, i32 0) ; <%IntList> [#uses=1]
177 %reg661.idx1 = getelementptr %YYSTYPE* %reg164, i64 1, i32 0 ; <%IntList*> [#uses=1]
178 store %IntList %reg167, %IntList* %reg661.idx1
179 store i32 -1, i32* @yychar
180 %reg169 = load i32* @yyerrflag ; <i32> [#uses=2]
181 %cond669 = icmp sle i32 %reg169, 0 ; <i1> [#uses=1]
182 br i1 %cond669, label %bb4, label %bb15
184 bb15: ; preds = %bb14
185 %reg171 = add i32 %reg169, -1 ; <i32> [#uses=1]
186 store i32 %reg171, i32* @yyerrflag
189 bb16: ; preds = %bb11, %bb10, %bb9, %bb8
190 %reg677 = getelementptr [43 x i16]* @yyrindex, i64 0, i64 %reg458-idxcast ; <i16*> [#uses=1]
191 %reg178 = load i16* %reg677 ; <i16> [#uses=1]
192 %cast682 = sext i16 %reg178 to i32 ; <i32> [#uses=2]
193 %cond683 = icmp eq i32 %cast682, 0 ; <i1> [#uses=1]
194 br i1 %cond683, label %bb21, label %bb17
196 bb17: ; preds = %bb16
197 %reg180 = load i32* @yychar ; <i32> [#uses=2]
198 %reg463 = add i32 %cast682, %reg180 ; <i32> [#uses=3]
199 %cond686 = icmp slt i32 %reg463, 0 ; <i1> [#uses=1]
200 br i1 %cond686, label %bb21, label %bb18
202 bb18: ; preds = %bb17
203 %cond689 = icmp sgt i32 %reg463, 262 ; <i1> [#uses=1]
204 br i1 %cond689, label %bb21, label %bb19
206 bb19: ; preds = %bb18
207 %reg463-idxcast = sext i32 %reg463 to i64 ; <i64> [#uses=2]
208 %reg694 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg463-idxcast ; <i16*> [#uses=1]
209 %reg189 = load i16* %reg694 ; <i16> [#uses=1]
210 %cast699 = sext i16 %reg189 to i32 ; <i32> [#uses=1]
211 %cond701 = icmp ne i32 %cast699, %reg180 ; <i1> [#uses=1]
212 br i1 %cond701, label %bb21, label %bb20
214 bb20: ; preds = %bb19
215 %reg704 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg463-idxcast ; <i16*> [#uses=1]
216 %reg197 = load i16* %reg704 ; <i16> [#uses=1]
217 %cast709 = sext i16 %reg197 to i32 ; <i32> [#uses=1]
220 bb21: ; preds = %bb19, %bb18, %bb17, %bb16
221 %reg198 = load i32* @yyerrflag ; <i32> [#uses=1]
222 %cond711 = icmp ne i32 %reg198, 0 ; <i1> [#uses=1]
223 br i1 %cond711, label %bb23, label %bb22
225 bb22: ; preds = %bb21
226 call void @yyerror( i8* getelementptr ([13 x i8]* @.LC01, i64 0, i64 0) )
227 %reg200 = load i32* @yynerrs ; <i32> [#uses=1]
228 %reg201 = add i32 %reg200, 1 ; <i32> [#uses=1]
229 store i32 %reg201, i32* @yynerrs
232 bb23: ; preds = %bb22, %bb21
233 %reg202 = load i32* @yyerrflag ; <i32> [#uses=1]
234 %cond719 = icmp sgt i32 %reg202, 2 ; <i1> [#uses=1]
235 br i1 %cond719, label %bb34, label %bb24
237 bb24: ; preds = %bb23
238 store i32 3, i32* @yyerrflag
239 %reg241 = load i16** @yyss ; <i16*> [#uses=1]
240 %cast778 = bitcast i16* %reg241 to i8* ; <i8*> [#uses=1]
243 bb25: ; preds = %bb33, %bb24
244 %reg204 = load i16** @yyssp ; <i16*> [#uses=4]
245 %reg206 = load i16* %reg204 ; <i16> [#uses=1]
246 %reg206-idxcast = sext i16 %reg206 to i64 ; <i64> [#uses=1]
247 %reg727 = getelementptr [43 x i16]* @yysindex, i64 0, i64 %reg206-idxcast ; <i16*> [#uses=1]
248 %reg212 = load i16* %reg727 ; <i16> [#uses=2]
249 %cast732 = sext i16 %reg212 to i32 ; <i32> [#uses=2]
250 %cond733 = icmp eq i32 %cast732, 0 ; <i1> [#uses=1]
251 br i1 %cond733, label %bb32, label %bb26
253 bb26: ; preds = %bb25
254 %reg466 = add i32 %cast732, 256 ; <i32> [#uses=2]
255 %cond736 = icmp slt i32 %reg466, 0 ; <i1> [#uses=1]
256 br i1 %cond736, label %bb32, label %bb27
258 bb27: ; preds = %bb26
259 %cond739 = icmp sgt i32 %reg466, 262 ; <i1> [#uses=1]
260 br i1 %cond739, label %bb32, label %bb28
262 bb28: ; preds = %bb27
263 %reg212-idxcast = sext i16 %reg212 to i64 ; <i64> [#uses=1]
264 %reg212-idxcast-offset = add i64 %reg212-idxcast, 256 ; <i64> [#uses=2]
265 %reg744 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg212-idxcast-offset ; <i16*> [#uses=1]
266 %reg221 = load i16* %reg744 ; <i16> [#uses=1]
267 %cond748 = icmp ne i16 %reg221, 256 ; <i1> [#uses=1]
268 br i1 %cond748, label %bb32, label %bb29
270 bb29: ; preds = %bb28
271 %cast750 = bitcast i16* %reg204 to i8* ; <i8*> [#uses=1]
272 %reg223 = load i16** @yysslim ; <i16*> [#uses=1]
273 %cast751 = bitcast i16* %reg223 to i8* ; <i8*> [#uses=1]
274 %cond752 = icmp ult i8* %cast750, %cast751 ; <i1> [#uses=1]
275 br i1 %cond752, label %bb31, label %bb30
277 bb30: ; preds = %bb29
278 %reg754 = call i32 @yygrowstack( ) ; <i32> [#uses=1]
279 %cond754 = icmp ne i32 %reg754, 0 ; <i1> [#uses=1]
280 br i1 %cond754, label %bb113, label %bb31
282 bb31: ; preds = %bb30, %bb29
283 %reg225 = load i16** @yyssp ; <i16*> [#uses=1]
284 %reg757 = getelementptr i16* %reg225, i64 1 ; <i16*> [#uses=2]
285 store i16* %reg757, i16** @yyssp
286 %reg763 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg212-idxcast-offset ; <i16*> [#uses=1]
287 %reg234 = load i16* %reg763 ; <i16> [#uses=2]
288 %cast768 = sext i16 %reg234 to i32 ; <i32> [#uses=1]
289 store i16 %reg234, i16* %reg757
290 %reg236 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
291 %reg771 = getelementptr %YYSTYPE* %reg236, i64 1 ; <%YYSTYPE*> [#uses=1]
292 store %YYSTYPE* %reg771, %YYSTYPE** @yyvsp
293 %reg239 = load %IntList* getelementptr (%YYSTYPE* @yylval, i64 0, i32 0) ; <%IntList> [#uses=1]
294 %reg771.idx1 = getelementptr %YYSTYPE* %reg236, i64 1, i32 0 ; <%IntList*> [#uses=1]
295 store %IntList %reg239, %IntList* %reg771.idx1
298 bb32: ; preds = %bb28, %bb27, %bb26, %bb25
299 %cast777 = bitcast i16* %reg204 to i8* ; <i8*> [#uses=1]
300 %cond779 = icmp ule i8* %cast777, %cast778 ; <i1> [#uses=1]
301 br i1 %cond779, label %UnifiedExitNode, label %bb33
303 bb33: ; preds = %bb32
304 %reg781 = getelementptr i16* %reg204, i64 -1 ; <i16*> [#uses=1]
305 store i16* %reg781, i16** @yyssp
306 %reg244 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1]
307 %reg786 = getelementptr %YYSTYPE* %reg244, i64 -1 ; <%YYSTYPE*> [#uses=1]
308 store %YYSTYPE* %reg786, %YYSTYPE** @yyvsp
311 bb34: ; preds = %bb23
312 %reg246 = load i32* @yychar ; <i32> [#uses=1]
313 %cond791 = icmp eq i32 %reg246, 0 ; <i1> [#uses=1]
314 br i1 %cond791, label %UnifiedExitNode, label %bb35
316 bb35: ; preds = %bb34
317 store i32 -1, i32* @yychar
320 bb36: ; preds = %bb20, %bb4
321 %reg468 = phi i32 [ %cast709, %bb20 ], [ %cast599, %bb4 ] ; <i32> [#uses=31]
322 %reg468-idxcast = sext i32 %reg468 to i64 ; <i64> [#uses=2]
323 %reg796 = getelementptr [25 x i16]* @yylen, i64 0, i64 %reg468-idxcast ; <i16*> [#uses=1]
324 %reg254 = load i16* %reg796 ; <i16> [#uses=2]
325 %reg259 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1]
326 %reg254-idxcast = sext i16 %reg254 to i64 ; <i64> [#uses=1]
327 %reg254-idxcast-scale = mul i64 %reg254-idxcast, -1 ; <i64> [#uses=1]
328 %reg254-idxcast-scale-offset = add i64 %reg254-idxcast-scale, 1 ; <i64> [#uses=1]
329 %reg261.idx1 = getelementptr %YYSTYPE* %reg259, i64 %reg254-idxcast-scale-offset, i32 0 ; <%IntList*> [#uses=1]
330 %reg261 = load %IntList* %reg261.idx1 ; <%IntList> [#uses=1]
331 store %IntList %reg261, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
332 %cond812 = icmp eq i32 %reg468, 13 ; <i1> [#uses=1]
333 br i1 %cond812, label %bb85, label %bb37
335 bb37: ; preds = %bb36
336 %cond814 = icmp sgt i32 %reg468, 13 ; <i1> [#uses=1]
337 br i1 %cond814, label %bb56, label %bb38
339 bb38: ; preds = %bb37
340 %cond817 = icmp eq i32 %reg468, 7 ; <i1> [#uses=1]
341 br i1 %cond817, label %bb79, label %bb39
343 bb39: ; preds = %bb38
344 %cond819 = icmp sgt i32 %reg468, 7 ; <i1> [#uses=1]
345 br i1 %cond819, label %bb48, label %bb40
347 bb40: ; preds = %bb39
348 %cond822 = icmp eq i32 %reg468, 4 ; <i1> [#uses=1]
349 br i1 %cond822, label %bb76, label %bb41
351 bb41: ; preds = %bb40
352 %cond824 = icmp sgt i32 %reg468, 4 ; <i1> [#uses=1]
353 br i1 %cond824, label %bb45, label %bb42
355 bb42: ; preds = %bb41
356 %cond827 = icmp eq i32 %reg468, 2 ; <i1> [#uses=1]
357 br i1 %cond827, label %bb74, label %bb43
359 bb43: ; preds = %bb42
360 %cond829 = icmp eq i32 %reg468, 3 ; <i1> [#uses=1]
361 br i1 %cond829, label %bb75, label %bb97
363 bb45: ; preds = %bb41
364 %cond831 = icmp eq i32 %reg468, 5 ; <i1> [#uses=1]
365 br i1 %cond831, label %bb77, label %bb46
367 bb46: ; preds = %bb45
368 %cond833 = icmp eq i32 %reg468, 6 ; <i1> [#uses=1]
369 br i1 %cond833, label %bb78, label %bb97
371 bb48: ; preds = %bb39
372 %cond835 = icmp eq i32 %reg468, 10 ; <i1> [#uses=1]
373 br i1 %cond835, label %bb82, label %bb49
375 bb49: ; preds = %bb48
376 %cond837 = icmp sgt i32 %reg468, 10 ; <i1> [#uses=1]
377 br i1 %cond837, label %bb53, label %bb50
379 bb50: ; preds = %bb49
380 %cond840 = icmp eq i32 %reg468, 8 ; <i1> [#uses=1]
381 br i1 %cond840, label %bb80, label %bb51
383 bb51: ; preds = %bb50
384 %cond842 = icmp eq i32 %reg468, 9 ; <i1> [#uses=1]
385 br i1 %cond842, label %bb81, label %bb97
387 bb53: ; preds = %bb49
388 %cond844 = icmp eq i32 %reg468, 11 ; <i1> [#uses=1]
389 br i1 %cond844, label %bb83, label %bb54
391 bb54: ; preds = %bb53
392 %cond846 = icmp eq i32 %reg468, 12 ; <i1> [#uses=1]
393 br i1 %cond846, label %bb84, label %bb97
395 bb56: ; preds = %bb37
396 %cond848 = icmp eq i32 %reg468, 19 ; <i1> [#uses=1]
397 br i1 %cond848, label %bb91, label %bb57
399 bb57: ; preds = %bb56
400 %cond850 = icmp sgt i32 %reg468, 19 ; <i1> [#uses=1]
401 br i1 %cond850, label %bb66, label %bb58
403 bb58: ; preds = %bb57
404 %cond853 = icmp eq i32 %reg468, 16 ; <i1> [#uses=1]
405 br i1 %cond853, label %bb88, label %bb59
407 bb59: ; preds = %bb58
408 %cond855 = icmp sgt i32 %reg468, 16 ; <i1> [#uses=1]
409 br i1 %cond855, label %bb63, label %bb60
411 bb60: ; preds = %bb59
412 %cond858 = icmp eq i32 %reg468, 14 ; <i1> [#uses=1]
413 br i1 %cond858, label %bb86, label %bb61
415 bb61: ; preds = %bb60
416 %cond860 = icmp eq i32 %reg468, 15 ; <i1> [#uses=1]
417 br i1 %cond860, label %bb87, label %bb97
419 bb63: ; preds = %bb59
420 %cond862 = icmp eq i32 %reg468, 17 ; <i1> [#uses=1]
421 br i1 %cond862, label %bb89, label %bb64
423 bb64: ; preds = %bb63
424 %cond864 = icmp eq i32 %reg468, 18 ; <i1> [#uses=1]
425 br i1 %cond864, label %bb90, label %bb97
427 bb66: ; preds = %bb57
428 %cond866 = icmp eq i32 %reg468, 22 ; <i1> [#uses=1]
429 br i1 %cond866, label %bb94, label %bb67
431 bb67: ; preds = %bb66
432 %cond868 = icmp sgt i32 %reg468, 22 ; <i1> [#uses=1]
433 br i1 %cond868, label %bb71, label %bb68
435 bb68: ; preds = %bb67
436 %cond871 = icmp eq i32 %reg468, 20 ; <i1> [#uses=1]
437 br i1 %cond871, label %bb92, label %bb69
439 bb69: ; preds = %bb68
440 %cond873 = icmp eq i32 %reg468, 21 ; <i1> [#uses=1]
441 br i1 %cond873, label %bb93, label %bb97
443 bb71: ; preds = %bb67
444 %cond875 = icmp eq i32 %reg468, 23 ; <i1> [#uses=1]
445 br i1 %cond875, label %bb95, label %bb72
447 bb72: ; preds = %bb71
448 %cond877 = icmp eq i32 %reg468, 24 ; <i1> [#uses=1]
449 br i1 %cond877, label %bb96, label %bb97
451 bb74: ; preds = %bb42
452 call void @yyfinished( )
455 bb75: ; preds = %bb43
456 %reg262 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
457 %reg264.idx1 = getelementptr %YYSTYPE* %reg262, i64 -2, i32 0 ; <%IntList*> [#uses=1]
458 %reg264 = load %IntList* %reg264.idx1 ; <%IntList> [#uses=1]
459 %reg265.idx = getelementptr %YYSTYPE* %reg262, i64 0, i32 0 ; <%IntList*> [#uses=1]
460 %reg265 = load %IntList* %reg265.idx ; <%IntList> [#uses=1]
461 %cast889 = bitcast %IntList %reg265 to %List ; <%List> [#uses=1]
462 %cast890 = bitcast %IntList %reg264 to %List ; <%List> [#uses=1]
463 call void @doSpec( %List %cast890, %List %cast889 )
466 bb76: ; preds = %bb40
467 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
470 bb77: ; preds = %bb45
471 %reg269 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
472 %cast894 = getelementptr %YYSTYPE* %reg269, i64 0, i32 0 ; <%IntList*> [#uses=1]
473 %reg271 = load %IntList* %cast894 ; <%IntList> [#uses=1]
474 %reg271.upgrd.1 = bitcast %IntList %reg271 to i8* ; <i8*> [#uses=1]
475 %reg272.idx1 = getelementptr %YYSTYPE* %reg269, i64 -1, i32 0 ; <%IntList*> [#uses=1]
476 %reg272 = load %IntList* %reg272.idx1 ; <%IntList> [#uses=1]
477 %cast901 = bitcast %IntList %reg272 to %List ; <%List> [#uses=1]
478 %reg901 = call %List @newList( i8* %reg271.upgrd.1, %List %cast901 ) ; <%List> [#uses=1]
479 bitcast %List %reg901 to %IntList ; <%IntList>:0 [#uses=1]
480 store %IntList %0, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
483 bb78: ; preds = %bb46
484 %reg275 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1]
485 %reg277.idx = getelementptr %YYSTYPE* %reg275, i64 0, i32 0 ; <%IntList*> [#uses=1]
486 %reg277 = load %IntList* %reg277.idx ; <%IntList> [#uses=1]
487 %cast907 = bitcast %IntList %reg277 to %List ; <%List> [#uses=1]
488 %reg907 = call %Arity @newArity( i32 -1, %List %cast907 ) ; <%Arity> [#uses=1]
489 bitcast %Arity %reg907 to %IntList ; <%IntList>:1 [#uses=1]
490 store %IntList %1, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
493 bb79: ; preds = %bb38
494 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
495 %reg281 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1]
496 %cast912 = getelementptr %YYSTYPE* %reg281, i64 0, i32 0 ; <%IntList*> [#uses=1]
497 %reg282 = load %IntList* %cast912 ; <%IntList> [#uses=1]
498 %reg282.upgrd.2 = bitcast %IntList %reg282 to %List ; <%List> [#uses=1]
499 call void @doGram( %List %reg282.upgrd.2 )
502 bb80: ; preds = %bb50
503 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
504 %reg285 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1]
505 %cast917 = getelementptr %YYSTYPE* %reg285, i64 0, i32 0 ; <%IntList*> [#uses=1]
506 %reg286 = load %IntList* %cast917 ; <%IntList> [#uses=1]
507 %reg286.upgrd.3 = bitcast %IntList %reg286 to i8* ; <i8*> [#uses=1]
508 call void @doStart( i8* %reg286.upgrd.3 )
511 bb81: ; preds = %bb51
512 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
515 bb82: ; preds = %bb48
516 %reg290 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
517 %cast923 = getelementptr %YYSTYPE* %reg290, i64 0, i32 0 ; <%IntList*> [#uses=1]
518 %reg292 = load %IntList* %cast923 ; <%IntList> [#uses=1]
519 %reg292.upgrd.4 = bitcast %IntList %reg292 to i8* ; <i8*> [#uses=1]
520 %reg293.idx1 = getelementptr %YYSTYPE* %reg290, i64 -1, i32 0 ; <%IntList*> [#uses=1]
521 %reg293 = load %IntList* %reg293.idx1 ; <%IntList> [#uses=1]
522 %cast930 = bitcast %IntList %reg293 to %List ; <%List> [#uses=1]
523 %reg930 = call %List @newList( i8* %reg292.upgrd.4, %List %cast930 ) ; <%List> [#uses=1]
524 bitcast %List %reg930 to %IntList ; <%IntList>:2 [#uses=1]
525 store %IntList %2, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
528 bb83: ; preds = %bb53
529 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
532 bb84: ; preds = %bb54
533 %reg298 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
534 %cast936 = getelementptr %YYSTYPE* %reg298, i64 0, i32 0 ; <%IntList*> [#uses=1]
535 %reg300 = load %IntList* %cast936 ; <%IntList> [#uses=1]
536 %reg300.upgrd.5 = bitcast %IntList %reg300 to i8* ; <i8*> [#uses=1]
537 %reg301.idx1 = getelementptr %YYSTYPE* %reg298, i64 -1, i32 0 ; <%IntList*> [#uses=1]
538 %reg301 = load %IntList* %reg301.idx1 ; <%IntList> [#uses=1]
539 %cast943 = bitcast %IntList %reg301 to %List ; <%List> [#uses=1]
540 %reg943 = call %List @newList( i8* %reg300.upgrd.5, %List %cast943 ) ; <%List> [#uses=1]
541 bitcast %List %reg943 to %IntList ; <%IntList>:3 [#uses=1]
542 store %IntList %3, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
545 bb85: ; preds = %bb36
546 %reg304 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
547 %cast9521 = getelementptr %YYSTYPE* %reg304, i64 -2, i32 0 ; <%IntList*> [#uses=1]
548 %reg306 = load %IntList* %cast9521 ; <%IntList> [#uses=1]
549 %reg306.upgrd.6 = bitcast %IntList %reg306 to i8* ; <i8*> [#uses=1]
550 %cast953 = bitcast %YYSTYPE* %reg304 to i32* ; <i32*> [#uses=1]
551 %reg307 = load i32* %cast953 ; <i32> [#uses=1]
552 %reg955 = call %Binding @newBinding( i8* %reg306.upgrd.6, i32 %reg307 ) ; <%Binding> [#uses=1]
553 bitcast %Binding %reg955 to %IntList ; <%IntList>:4 [#uses=1]
554 store %IntList %4, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
557 bb86: ; preds = %bb60
558 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
561 bb87: ; preds = %bb61
562 %reg312 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
563 %cast961 = getelementptr %YYSTYPE* %reg312, i64 0, i32 0 ; <%IntList*> [#uses=1]
564 %reg314 = load %IntList* %cast961 ; <%IntList> [#uses=1]
565 %reg314.upgrd.7 = bitcast %IntList %reg314 to i8* ; <i8*> [#uses=1]
566 %reg315.idx1 = getelementptr %YYSTYPE* %reg312, i64 -1, i32 0 ; <%IntList*> [#uses=1]
567 %reg315 = load %IntList* %reg315.idx1 ; <%IntList> [#uses=1]
568 %cast968 = bitcast %IntList %reg315 to %List ; <%List> [#uses=1]
569 %reg968 = call %List @newList( i8* %reg314.upgrd.7, %List %cast968 ) ; <%List> [#uses=1]
570 bitcast %List %reg968 to %IntList ; <%IntList>:5 [#uses=1]
571 store %IntList %5, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
574 bb88: ; preds = %bb58
575 %reg318 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=4]
576 %cast9791 = getelementptr %YYSTYPE* %reg318, i64 -6, i32 0 ; <%IntList*> [#uses=1]
577 %reg322 = load %IntList* %cast9791 ; <%IntList> [#uses=1]
578 %reg322.upgrd.8 = bitcast %IntList %reg322 to i8* ; <i8*> [#uses=1]
579 %reg323.idx1 = getelementptr %YYSTYPE* %reg318, i64 -4, i32 0 ; <%IntList*> [#uses=1]
580 %reg323 = load %IntList* %reg323.idx1 ; <%IntList> [#uses=1]
581 %reg987 = getelementptr %YYSTYPE* %reg318, i64 -2 ; <%YYSTYPE*> [#uses=1]
582 %cast989 = bitcast %YYSTYPE* %reg987 to i32* ; <i32*> [#uses=1]
583 %reg324 = load i32* %cast989 ; <i32> [#uses=1]
584 %reg325.idx1 = getelementptr %YYSTYPE* %reg318, i64 -1, i32 0 ; <%IntList*> [#uses=1]
585 %reg325 = load %IntList* %reg325.idx1 ; <%IntList> [#uses=1]
586 %cast998 = bitcast %IntList %reg323 to %PatternAST ; <%PatternAST> [#uses=1]
587 %reg996 = call %RuleAST @newRuleAST( i8* %reg322.upgrd.8, %PatternAST %cast998, i32 %reg324, %IntList %reg325 ) ; <%RuleAST> [#uses=1]
588 bitcast %RuleAST %reg996 to %IntList ; <%IntList>:6 [#uses=1]
589 store %IntList %6, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
592 bb89: ; preds = %bb63
593 %reg328 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1]
594 %cast1002 = getelementptr %YYSTYPE* %reg328, i64 0, i32 0 ; <%IntList*> [#uses=1]
595 %reg329 = load %IntList* %cast1002 ; <%IntList> [#uses=1]
596 %reg329.upgrd.9 = bitcast %IntList %reg329 to i8* ; <i8*> [#uses=1]
597 %reg1004 = call %PatternAST @newPatternAST( i8* %reg329.upgrd.9, %List null ) ; <%PatternAST> [#uses=1]
598 bitcast %PatternAST %reg1004 to %IntList ; <%IntList>:7 [#uses=1]
599 store %IntList %7, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
602 bb90: ; preds = %bb64
603 %reg333 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
604 %cast10131 = getelementptr %YYSTYPE* %reg333, i64 -1, i32 0 ; <%IntList*> [#uses=1]
605 %reg335 = load %IntList* %cast10131 ; <%IntList> [#uses=1]
606 %reg335.upgrd.10 = bitcast %IntList %reg335 to i8* ; <i8*> [#uses=1]
607 %reg1015 = call %List @newList( i8* %reg335.upgrd.10, %List null ) ; <%List> [#uses=1]
608 %cast10211 = getelementptr %YYSTYPE* %reg333, i64 -3, i32 0 ; <%IntList*> [#uses=1]
609 %reg338 = load %IntList* %cast10211 ; <%IntList> [#uses=1]
610 %reg338.upgrd.11 = bitcast %IntList %reg338 to i8* ; <i8*> [#uses=1]
611 %reg1023 = call %PatternAST @newPatternAST( i8* %reg338.upgrd.11, %List %reg1015 ) ; <%PatternAST> [#uses=1]
612 bitcast %PatternAST %reg1023 to %IntList ; <%IntList>:8 [#uses=1]
613 store %IntList %8, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
616 bb91: ; preds = %bb56
617 %reg341 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=3]
618 %cast10331 = getelementptr %YYSTYPE* %reg341, i64 -1, i32 0 ; <%IntList*> [#uses=1]
619 %reg344 = load %IntList* %cast10331 ; <%IntList> [#uses=1]
620 %reg344.upgrd.12 = bitcast %IntList %reg344 to i8* ; <i8*> [#uses=1]
621 %reg1035 = call %List @newList( i8* %reg344.upgrd.12, %List null ) ; <%List> [#uses=1]
622 %cast10411 = getelementptr %YYSTYPE* %reg341, i64 -3, i32 0 ; <%IntList*> [#uses=1]
623 %reg347 = load %IntList* %cast10411 ; <%IntList> [#uses=1]
624 %reg347.upgrd.13 = bitcast %IntList %reg347 to i8* ; <i8*> [#uses=1]
625 %reg1043 = call %List @newList( i8* %reg347.upgrd.13, %List %reg1035 ) ; <%List> [#uses=1]
626 %cast10491 = getelementptr %YYSTYPE* %reg341, i64 -5, i32 0 ; <%IntList*> [#uses=1]
627 %reg349 = load %IntList* %cast10491 ; <%IntList> [#uses=1]
628 %reg349.upgrd.14 = bitcast %IntList %reg349 to i8* ; <i8*> [#uses=1]
629 %reg1051 = call %PatternAST @newPatternAST( i8* %reg349.upgrd.14, %List %reg1043 ) ; <%PatternAST> [#uses=1]
630 bitcast %PatternAST %reg1051 to %IntList ; <%IntList>:9 [#uses=1]
631 store %IntList %9, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
634 bb92: ; preds = %bb68
635 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
638 bb93: ; preds = %bb69
639 %reg354 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
640 %reg1059 = getelementptr %YYSTYPE* %reg354, i64 -2 ; <%YYSTYPE*> [#uses=1]
641 %cast1061 = bitcast %YYSTYPE* %reg1059 to i32* ; <i32*> [#uses=1]
642 %reg356 = load i32* %cast1061 ; <i32> [#uses=1]
643 %reg357.idx1 = getelementptr %YYSTYPE* %reg354, i64 -1, i32 0 ; <%IntList*> [#uses=1]
644 %reg357 = load %IntList* %reg357.idx1 ; <%IntList> [#uses=1]
645 %reg1068 = call %IntList @newIntList( i32 %reg356, %IntList %reg357 ) ; <%IntList> [#uses=1]
646 store %IntList %reg1068, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
649 bb94: ; preds = %bb66
650 store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
653 bb95: ; preds = %bb71
654 %reg362 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
655 %reg1076 = getelementptr %YYSTYPE* %reg362, i64 -1 ; <%YYSTYPE*> [#uses=1]
656 %cast1078 = bitcast %YYSTYPE* %reg1076 to i32* ; <i32*> [#uses=1]
657 %reg364 = load i32* %cast1078 ; <i32> [#uses=1]
658 %reg365.idx = getelementptr %YYSTYPE* %reg362, i64 0, i32 0 ; <%IntList*> [#uses=1]
659 %reg365 = load %IntList* %reg365.idx ; <%IntList> [#uses=1]
660 %reg1081 = call %IntList @newIntList( i32 %reg364, %IntList %reg365 ) ; <%IntList> [#uses=1]
661 store %IntList %reg1081, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
664 bb96: ; preds = %bb72
665 %reg368 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
666 %reg1088 = getelementptr %YYSTYPE* %reg368, i64 -1 ; <%YYSTYPE*> [#uses=1]
667 %cast1090 = bitcast %YYSTYPE* %reg1088 to i32* ; <i32*> [#uses=1]
668 %reg370 = load i32* %cast1090 ; <i32> [#uses=1]
669 %reg371.idx = getelementptr %YYSTYPE* %reg368, i64 0, i32 0 ; <%IntList*> [#uses=1]
670 %reg371 = load %IntList* %reg371.idx ; <%IntList> [#uses=1]
671 %reg1093 = call %IntList @newIntList( i32 %reg370, %IntList %reg371 ) ; <%IntList> [#uses=1]
672 store %IntList %reg1093, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
675 bb97: ; preds = %bb96, %bb95, %bb94, %bb93, %bb92, %bb91, %bb90, %bb89, %bb88, %bb87, %bb86, %bb85, %bb84, %bb83, %bb82, %bb81, %bb80, %bb79, %bb78, %bb77, %bb76, %bb75, %bb74, %bb72, %bb69, %bb64, %bb61, %bb54, %bb51, %bb46, %bb43
676 %cast1097 = sext i16 %reg254 to i64 ; <i64> [#uses=3]
677 %reg375 = add i64 %cast1097, %cast1097 ; <i64> [#uses=1]
678 %reg377 = load i16** @yyssp ; <i16*> [#uses=1]
679 %cast379 = ptrtoint i16* %reg377 to i64 ; <i64> [#uses=1]
680 %reg381 = sub i64 %cast379, %reg375 ; <i64> [#uses=1]
681 %cast1099 = inttoptr i64 %reg381 to i16* ; <i16*> [#uses=1]
682 store i16* %cast1099, i16** @yyssp
683 %reg382 = load i16** @yyssp ; <i16*> [#uses=3]
684 %reg383 = load i16* %reg382 ; <i16> [#uses=1]
685 %cast1103 = sext i16 %reg383 to i32 ; <i32> [#uses=3]
686 %reg385 = mul i64 %cast1097, 8 ; <i64> [#uses=1]
687 %reg387 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1]
688 %cast389 = ptrtoint %YYSTYPE* %reg387 to i64 ; <i64> [#uses=1]
689 %reg391 = sub i64 %cast389, %reg385 ; <i64> [#uses=1]
690 %cast1108 = inttoptr i64 %reg391 to %YYSTYPE* ; <%YYSTYPE*> [#uses=1]
691 store %YYSTYPE* %cast1108, %YYSTYPE** @yyvsp
692 %reg1111 = getelementptr [25 x i16]* @yylhs, i64 0, i64 %reg468-idxcast ; <i16*> [#uses=1]
693 %reg398 = load i16* %reg1111 ; <i16> [#uses=2]
694 %cast1116 = sext i16 %reg398 to i32 ; <i32> [#uses=1]
695 %cond1117 = icmp ne i32 %cast1103, 0 ; <i1> [#uses=1]
696 br i1 %cond1117, label %bb104, label %bb98
698 bb98: ; preds = %bb97
699 %cond1119 = icmp ne i32 %cast1116, 0 ; <i1> [#uses=1]
700 br i1 %cond1119, label %bb104, label %bb99
702 bb99: ; preds = %bb98
703 %reg1122 = getelementptr i16* %reg382, i64 1 ; <i16*> [#uses=2]
704 store i16* %reg1122, i16** @yyssp
705 store i16 1, i16* %reg1122
706 %reg403 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
707 %reg1128 = getelementptr %YYSTYPE* %reg403, i64 1 ; <%YYSTYPE*> [#uses=1]
708 store %YYSTYPE* %reg1128, %YYSTYPE** @yyvsp
709 %reg406 = load %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) ; <%IntList> [#uses=1]
710 %reg1128.idx1 = getelementptr %YYSTYPE* %reg403, i64 1, i32 0 ; <%IntList*> [#uses=1]
711 store %IntList %reg406, %IntList* %reg1128.idx1
712 %reg407 = load i32* @yychar ; <i32> [#uses=1]
713 %cond1135 = icmp sge i32 %reg407, 0 ; <i1> [#uses=1]
714 br i1 %cond1135, label %bb102, label %bb100
716 bb100: ; preds = %bb99
717 %reg1139 = call i32 @yylex( ) ; <i32> [#uses=1]
718 store i32 %reg1139, i32* @yychar
719 %reg409 = load i32* @yychar ; <i32> [#uses=1]
720 %cond1141 = icmp sge i32 %reg409, 0 ; <i1> [#uses=1]
721 br i1 %cond1141, label %bb102, label %bb101
723 bb101: ; preds = %bb100
724 store i32 0, i32* @yychar
727 bb102: ; preds = %bb101, %bb100, %bb99
728 %reg411 = load i32* @yychar ; <i32> [#uses=1]
729 %cond1146 = icmp ne i32 %reg411, 0 ; <i1> [#uses=1]
730 br i1 %cond1146, label %bb4, label %UnifiedExitNode
732 bb104: ; preds = %bb98, %bb97
733 %reg398-idxcast = sext i16 %reg398 to i64 ; <i64> [#uses=2]
734 %reg1150 = getelementptr [12 x i16]* @yygindex, i64 0, i64 %reg398-idxcast ; <i16*> [#uses=1]
735 %reg418 = load i16* %reg1150 ; <i16> [#uses=1]
736 %cast1155 = sext i16 %reg418 to i32 ; <i32> [#uses=2]
737 %cond1156 = icmp eq i32 %cast1155, 0 ; <i1> [#uses=1]
738 br i1 %cond1156, label %bb109, label %bb105
740 bb105: ; preds = %bb104
741 %reg473 = add i32 %cast1155, %cast1103 ; <i32> [#uses=3]
742 %cond1158 = icmp slt i32 %reg473, 0 ; <i1> [#uses=1]
743 br i1 %cond1158, label %bb109, label %bb106
745 bb106: ; preds = %bb105
746 %cond1161 = icmp sgt i32 %reg473, 262 ; <i1> [#uses=1]
747 br i1 %cond1161, label %bb109, label %bb107
749 bb107: ; preds = %bb106
750 %reg473-idxcast = sext i32 %reg473 to i64 ; <i64> [#uses=2]
751 %reg1166 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg473-idxcast ; <i16*> [#uses=1]
752 %reg428 = load i16* %reg1166 ; <i16> [#uses=1]
753 %cast1171 = sext i16 %reg428 to i32 ; <i32> [#uses=1]
754 %cond1172 = icmp ne i32 %cast1171, %cast1103 ; <i1> [#uses=1]
755 br i1 %cond1172, label %bb109, label %bb108
757 bb108: ; preds = %bb107
758 %reg1175 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg473-idxcast ; <i16*> [#uses=1]
759 %reg435 = load i16* %reg1175 ; <i16> [#uses=1]
760 %cast1180 = sext i16 %reg435 to i32 ; <i32> [#uses=1]
763 bb109: ; preds = %bb107, %bb106, %bb105, %bb104
764 %reg1183 = getelementptr [12 x i16]* @yydgoto, i64 0, i64 %reg398-idxcast ; <i16*> [#uses=1]
765 %reg442 = load i16* %reg1183 ; <i16> [#uses=1]
766 %cast1188 = sext i16 %reg442 to i32 ; <i32> [#uses=1]
769 bb110: ; preds = %bb109, %bb108
770 %reg476 = phi i32 [ %cast1188, %bb109 ], [ %cast1180, %bb108 ] ; <i32> [#uses=2]
771 %cast1189 = bitcast i16* %reg382 to i8* ; <i8*> [#uses=1]
772 %reg444 = load i16** @yysslim ; <i16*> [#uses=1]
773 %cast1190 = bitcast i16* %reg444 to i8* ; <i8*> [#uses=1]
774 %cond1191 = icmp ult i8* %cast1189, %cast1190 ; <i1> [#uses=1]
775 br i1 %cond1191, label %bb112, label %bb111
777 bb111: ; preds = %bb110
778 %reg1193 = call i32 @yygrowstack( ) ; <i32> [#uses=1]
779 %cond1193 = icmp ne i32 %reg1193, 0 ; <i1> [#uses=1]
780 br i1 %cond1193, label %bb113, label %bb112
782 bb112: ; preds = %bb111, %bb110
783 %reg446 = load i16** @yyssp ; <i16*> [#uses=1]
784 %reg1196 = getelementptr i16* %reg446, i64 1 ; <i16*> [#uses=2]
785 store i16* %reg1196, i16** @yyssp
786 %cast1357 = trunc i32 %reg476 to i16 ; <i16> [#uses=1]
787 store i16 %cast1357, i16* %reg1196
788 %reg449 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2]
789 %reg1202 = getelementptr %YYSTYPE* %reg449, i64 1 ; <%YYSTYPE*> [#uses=1]
790 store %YYSTYPE* %reg1202, %YYSTYPE** @yyvsp
791 %reg452 = load %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) ; <%IntList> [#uses=1]
792 %reg1202.idx1 = getelementptr %YYSTYPE* %reg449, i64 1, i32 0 ; <%IntList*> [#uses=1]
793 store %IntList %reg452, %IntList* %reg1202.idx1
796 bb113: ; preds = %bb111, %bb30, %bb13, %bb2
797 call void @yyerror( i8* getelementptr ([20 x i8]* @.LC1, i64 0, i64 0) )
798 br label %UnifiedExitNode
800 UnifiedExitNode: ; preds = %bb113, %bb102, %bb34, %bb32
801 %UnifiedRetVal = phi i32 [ 1, %bb113 ], [ 1, %bb34 ], [ 1, %bb32 ], [ 0, %bb102 ] ; <i32> [#uses=1]
802 ret i32 %UnifiedRetVal
805 declare %List @newList(i8*, %List)
807 declare %IntList @newIntList(i32, %IntList)
809 declare void @doStart(i8*)
811 declare void @yyerror(i8*)
813 declare void @doSpec(%List, %List)
815 declare %Arity @newArity(i32, %List)
817 declare %Binding @newBinding(i8*, i32)
819 declare %PatternAST @newPatternAST(i8*, %List)
821 declare %RuleAST @newRuleAST(i8*, %PatternAST, i32, %IntList)
823 declare void @yyfinished()
827 declare void @doGram(%List)
829 declare i32 @yygrowstack()