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