1 /* In 3.0, this test case (extracted from Bigloo) crashes the compiler in
2    bb-reorder.c.  This is a regression from 2.95, already fixed in 3.1.
3 
4    Original bug report is c/5830 by Manuel Serrano <Manuel.Serrano@inria.fr>.
5  */
6 
7 /* { dg-require-stack-size "513" } */
8 
9 typedef union scmobj {
10   struct pair {
11     union scmobj *car;
12     union scmobj *cdr;
13   } pair_t;
14   struct vector {
15     long header;
16     int length;
17     union scmobj *obj0;
18   } vector_t;
19 } *obj_t;
20 
21 extern obj_t create_vector (int);
22 extern obj_t make_pair (obj_t, obj_t);
23 extern long bgl_list_length (obj_t);
24 extern int BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (obj_t, obj_t);
25 extern obj_t BGl_evcompilezd2lambdazd2zz__evcompilez00 (obj_t
26 							BgL_formalsz00_39,
27 							obj_t BgL_bodyz00_40,
28 							obj_t BgL_wherez00_41,
29 							obj_t
30 							BgL_namedzf3zf3_42,
31 							obj_t BgL_locz00_43);
32 
33 obj_t
BGl_evcompilezd2lambdazd2zz__evcompilez00(obj_t BgL_formalsz00_39,obj_t BgL_bodyz00_40,obj_t BgL_wherez00_41,obj_t BgL_namedzf3zf3_42,obj_t BgL_locz00_43)34 BGl_evcompilezd2lambdazd2zz__evcompilez00 (obj_t BgL_formalsz00_39,
35 					   obj_t BgL_bodyz00_40,
36 					   obj_t BgL_wherez00_41,
37 					   obj_t BgL_namedzf3zf3_42,
38 					   obj_t BgL_locz00_43)
39 {
40   if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00
41       (BgL_formalsz00_39,
42        ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) {
43   BgL_tagzd21966zd2_943:
44     if ((BgL_namedzf3zf3_42 !=
45 	 ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) {
46       obj_t BgL_v1042z00_998;
47       {
48 	int BgL_auxz00_4066;
49 	BgL_auxz00_4066 = (int) (((long) 3));
50 	BgL_v1042z00_998 = create_vector (BgL_auxz00_4066);
51       }
52       {
53 	obj_t BgL_arg1586z00_1000;
54 	BgL_arg1586z00_1000 = make_pair (BgL_wherez00_41, BgL_bodyz00_40);
55 	{
56 	  int BgL_auxz00_4070;
57 	  BgL_auxz00_4070 = (int) (((long) 2));
58 	  ((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4070] =
59 	   BgL_arg1586z00_1000,
60 	   ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
61 	}
62       }
63       {
64 	int BgL_auxz00_4073;
65 	BgL_auxz00_4073 = (int) (((long) 1));
66 	((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4073] =
67 	 BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
68       }
69       {
70 	obj_t BgL_auxz00_4078;
71 	int BgL_auxz00_4076;
72 	{
73 	  long BgL_auxz00_4079;
74 	  {
75 	    long BgL_auxz00_4080;
76 	    BgL_auxz00_4080 = bgl_list_length (BgL_formalsz00_39);
77 	    BgL_auxz00_4079 = (BgL_auxz00_4080 + ((long) 37));
78 	  }
79 	  BgL_auxz00_4078 =
80 	    (obj_t) ((long) (((long) (BgL_auxz00_4079) << 2) | 1));
81 	}
82 	BgL_auxz00_4076 = (int) (((long) 0));
83 	((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4076] =
84 	 BgL_auxz00_4078, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
85       }
86       return BgL_v1042z00_998;
87     } else {
88       obj_t BgL_v1043z00_1005;
89       {
90 	int BgL_auxz00_4085;
91 	BgL_auxz00_4085 = (int) (((long) 3));
92 	BgL_v1043z00_1005 = create_vector (BgL_auxz00_4085);
93       }
94       {
95 	int BgL_auxz00_4088;
96 	BgL_auxz00_4088 = (int) (((long) 2));
97 	((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4088] =
98 	 BgL_bodyz00_40, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
99       }
100       {
101 	int BgL_auxz00_4091;
102 	BgL_auxz00_4091 = (int) (((long) 1));
103 	((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4091] =
104 	 BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
105       }
106       {
107 	obj_t BgL_auxz00_4096;
108 	int BgL_auxz00_4094;
109 	{
110 	  long BgL_auxz00_4097;
111 	  {
112 	    long BgL_auxz00_4098;
113 	    BgL_auxz00_4098 = bgl_list_length (BgL_formalsz00_39);
114 	    BgL_auxz00_4097 = (BgL_auxz00_4098 + ((long) 42));
115 	  }
116 	  BgL_auxz00_4096 =
117 	    (obj_t) ((long) (((long) (BgL_auxz00_4097) << 2) | 1));
118 	}
119 	BgL_auxz00_4094 = (int) (((long) 0));
120 	((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4094] =
121 	 BgL_auxz00_4096, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
122       }
123       return BgL_v1043z00_1005;
124     }
125   } else {
126     if (((((long) BgL_formalsz00_39) & ((1 << 2) - 1)) == 3)) {
127       if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00
128 	  (((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).cdr),
129 	   ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) {
130 	goto BgL_tagzd21966zd2_943;
131       } else {
132 	obj_t BgL_cdrzd21979zd2_953;
133 	BgL_cdrzd21979zd2_953 =
134 	  ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).cdr);
135 	if (((((long) BgL_cdrzd21979zd2_953) & ((1 << 2) - 1)) == 3)) {
136 	  if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00
137 	      (((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).cdr),
138 	       ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) {
139 	    goto BgL_tagzd21966zd2_943;
140 	  } else {
141 	    obj_t BgL_cdrzd21986zd2_956;
142 	    BgL_cdrzd21986zd2_956 =
143 	      ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).cdr);
144 	    if (((((long) BgL_cdrzd21986zd2_956) & ((1 << 2) - 1)) == 3)) {
145 	      if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00
146 		  (((((obj_t) ((long) BgL_cdrzd21986zd2_956 - 3))->pair_t).
147 		    cdr),
148 		   ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) {
149 		goto BgL_tagzd21966zd2_943;
150 	      } else {
151 		obj_t BgL_cdrzd21994zd2_959;
152 		{
153 		  obj_t BgL_auxz00_4120;
154 		  BgL_auxz00_4120 =
155 		    ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).
156 		     cdr);
157 		  BgL_cdrzd21994zd2_959 =
158 		    ((((obj_t) ((long) BgL_auxz00_4120 - 3))->pair_t).cdr);
159 		}
160 		if (((((long) BgL_cdrzd21994zd2_959) & ((1 << 2) - 1)) == 3)) {
161 		  if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00
162 		      (((((obj_t) ((long) BgL_cdrzd21994zd2_959 - 3))->
163 			 pair_t).cdr),
164 		       ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) {
165 		    goto BgL_tagzd21966zd2_943;
166 		  } else {
167 		    int BgL_testz00_4128;
168 		    {
169 		      obj_t BgL_auxz00_4129;
170 		      BgL_auxz00_4129 =
171 			((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).
172 			 car);
173 		      BgL_testz00_4128 =
174 			((((long) BgL_auxz00_4129) & ((1 << 2) - 1)) == 3);
175 		    }
176 		    if (BgL_testz00_4128) {
177 		    BgL_tagzd21971zd2_948:
178 		      if ((BgL_namedzf3zf3_42 !=
179 			   ((obj_t) (obj_t)
180 			    ((long) (((long) (1) << 2) | 2))))) {
181 			obj_t BgL_v1052z00_1026;
182 			{
183 			  int BgL_auxz00_4134;
184 			  BgL_auxz00_4134 = (int) (((long) 3));
185 			  BgL_v1052z00_1026 = create_vector (BgL_auxz00_4134);
186 			}
187 			{
188 			  obj_t BgL_arg1606z00_1028;
189 			  {
190 			    obj_t BgL_v1053z00_1029;
191 			    {
192 			      int BgL_auxz00_4137;
193 			      BgL_auxz00_4137 = (int) (((long) 3));
194 			      BgL_v1053z00_1029 =
195 				create_vector (BgL_auxz00_4137);
196 			    }
197 			    {
198 			      int BgL_auxz00_4140;
199 			      BgL_auxz00_4140 = (int) (((long) 2));
200 			      ((&
201 				(((obj_t) (BgL_v1053z00_1029))->vector_t.
202 				 obj0))[BgL_auxz00_4140] =
203 			       BgL_formalsz00_39,
204 			       ((obj_t) (obj_t)
205 				((long) (((long) (3) << 2) | 2))));
206 			    }
207 			    {
208 			      int BgL_auxz00_4143;
209 			      BgL_auxz00_4143 = (int) (((long) 1));
210 			      ((&
211 				(((obj_t) (BgL_v1053z00_1029))->vector_t.
212 				 obj0))[BgL_auxz00_4143] =
213 			       BgL_bodyz00_40,
214 			       ((obj_t) (obj_t)
215 				((long) (((long) (3) << 2) | 2))));
216 			    }
217 			    {
218 			      int BgL_auxz00_4146;
219 			      BgL_auxz00_4146 = (int) (((long) 0));
220 			      ((&
221 				(((obj_t) (BgL_v1053z00_1029))->vector_t.
222 				 obj0))[BgL_auxz00_4146] =
223 			       BgL_wherez00_41,
224 			       ((obj_t) (obj_t)
225 				((long) (((long) (3) << 2) | 2))));
226 			    }
227 			    BgL_arg1606z00_1028 = BgL_v1053z00_1029;
228 			  }
229 			  {
230 			    int BgL_auxz00_4149;
231 			    BgL_auxz00_4149 = (int) (((long) 2));
232 			    ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0))
233 			     [BgL_auxz00_4149] =
234 			     BgL_arg1606z00_1028,
235 			     ((obj_t) (obj_t)
236 			      ((long) (((long) (3) << 2) | 2))));
237 			  }
238 			}
239 			{
240 			  int BgL_auxz00_4152;
241 			  BgL_auxz00_4152 = (int) (((long) 1));
242 			  ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0))
243 			   [BgL_auxz00_4152] =
244 			   BgL_locz00_43,
245 			   ((obj_t) (obj_t)
246 			    ((long) (((long) (3) << 2) | 2))));
247 			}
248 			{
249 			  obj_t BgL_auxz00_4157;
250 			  int BgL_auxz00_4155;
251 			  BgL_auxz00_4157 =
252 			    (obj_t) ((long)
253 				     (((long) (((long) 55)) << 2) | 1));
254 			  BgL_auxz00_4155 = (int) (((long) 0));
255 			  ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0))
256 			   [BgL_auxz00_4155] =
257 			   BgL_auxz00_4157,
258 			   ((obj_t) (obj_t)
259 			    ((long) (((long) (3) << 2) | 2))));
260 			}
261 			return BgL_v1052z00_1026;
262 		      } else {
263 			obj_t BgL_v1054z00_1030;
264 			{
265 			  int BgL_auxz00_4160;
266 			  BgL_auxz00_4160 = (int) (((long) 3));
267 			  BgL_v1054z00_1030 = create_vector (BgL_auxz00_4160);
268 			}
269 			{
270 			  obj_t BgL_arg1608z00_1032;
271 			  BgL_arg1608z00_1032 =
272 			    make_pair (BgL_bodyz00_40, BgL_formalsz00_39);
273 			  {
274 			    int BgL_auxz00_4164;
275 			    BgL_auxz00_4164 = (int) (((long) 2));
276 			    ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0))
277 			     [BgL_auxz00_4164] =
278 			     BgL_arg1608z00_1032,
279 			     ((obj_t) (obj_t)
280 			      ((long) (((long) (3) << 2) | 2))));
281 			  }
282 			}
283 			{
284 			  int BgL_auxz00_4167;
285 			  BgL_auxz00_4167 = (int) (((long) 1));
286 			  ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0))
287 			   [BgL_auxz00_4167] =
288 			   BgL_locz00_43,
289 			   ((obj_t) (obj_t)
290 			    ((long) (((long) (3) << 2) | 2))));
291 			}
292 			{
293 			  obj_t BgL_auxz00_4172;
294 			  int BgL_auxz00_4170;
295 			  BgL_auxz00_4172 =
296 			    (obj_t) ((long)
297 				     (((long) (((long) 56)) << 2) | 1));
298 			  BgL_auxz00_4170 = (int) (((long) 0));
299 			  ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0))
300 			   [BgL_auxz00_4170] =
301 			   BgL_auxz00_4172,
302 			   ((obj_t) (obj_t)
303 			    ((long) (((long) (3) << 2) | 2))));
304 			}
305 			return BgL_v1054z00_1030;
306 		      }
307 		    } else {
308 		      int BgL_testz00_4175;
309 		      {
310 			obj_t BgL_auxz00_4176;
311 			{
312 			  obj_t BgL_auxz00_4177;
313 			  BgL_auxz00_4177 =
314 			    ((((obj_t) ((long) BgL_formalsz00_39 - 3))->
315 			      pair_t).cdr);
316 			  BgL_auxz00_4176 =
317 			    ((((obj_t) ((long) BgL_auxz00_4177 - 3))->pair_t).
318 			     car);
319 			}
320 			BgL_testz00_4175 =
321 			  ((((long) BgL_auxz00_4176) & ((1 << 2) - 1)) == 3);
322 		      }
323 		      if (BgL_testz00_4175) {
324 			goto BgL_tagzd21971zd2_948;
325 		      } else {
326 			int BgL_testz00_4181;
327 			{
328 			  obj_t BgL_auxz00_4182;
329 			  {
330 			    obj_t BgL_auxz00_4183;
331 			    {
332 			      obj_t BgL_auxz00_4184;
333 			      BgL_auxz00_4184 =
334 				((((obj_t) ((long) BgL_formalsz00_39 - 3))->
335 				  pair_t).cdr);
336 			      BgL_auxz00_4183 =
337 				((((obj_t) ((long) BgL_auxz00_4184 - 3))->
338 				  pair_t).cdr);
339 			    }
340 			    BgL_auxz00_4182 =
341 			      ((((obj_t) ((long) BgL_auxz00_4183 - 3))->
342 				pair_t).car);
343 			  }
344 			  BgL_testz00_4181 =
345 			    ((((long) BgL_auxz00_4182) & ((1 << 2) - 1)) ==
346 			     3);
347 			}
348 			if (BgL_testz00_4181) {
349 			  goto BgL_tagzd21971zd2_948;
350 			} else {
351 			  goto BgL_tagzd21971zd2_948;
352 			}
353 		      }
354 		    }
355 		  }
356 		} else {
357 		  int BgL_testz00_4189;
358 		  {
359 		    obj_t BgL_auxz00_4190;
360 		    BgL_auxz00_4190 =
361 		      ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).
362 		       car);
363 		    BgL_testz00_4189 =
364 		      ((((long) BgL_auxz00_4190) & ((1 << 2) - 1)) == 3);
365 		  }
366 		  if (BgL_testz00_4189) {
367 		    goto BgL_tagzd21971zd2_948;
368 		  } else {
369 		    int BgL_testz00_4193;
370 		    {
371 		      obj_t BgL_auxz00_4194;
372 		      {
373 			obj_t BgL_auxz00_4195;
374 			BgL_auxz00_4195 =
375 			  ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).
376 			   cdr);
377 			BgL_auxz00_4194 =
378 			  ((((obj_t) ((long) BgL_auxz00_4195 - 3))->pair_t).
379 			   car);
380 		      }
381 		      BgL_testz00_4193 =
382 			((((long) BgL_auxz00_4194) & ((1 << 2) - 1)) == 3);
383 		    }
384 		    if (BgL_testz00_4193) {
385 		      goto BgL_tagzd21971zd2_948;
386 		    } else {
387 		      int BgL_testz00_4199;
388 		      {
389 			obj_t BgL_auxz00_4200;
390 			{
391 			  obj_t BgL_auxz00_4201;
392 			  {
393 			    obj_t BgL_auxz00_4202;
394 			    BgL_auxz00_4202 =
395 			      ((((obj_t) ((long) BgL_formalsz00_39 - 3))->
396 				pair_t).cdr);
397 			    BgL_auxz00_4201 =
398 			      ((((obj_t) ((long) BgL_auxz00_4202 - 3))->
399 				pair_t).cdr);
400 			  }
401 			  BgL_auxz00_4200 =
402 			    ((((obj_t) ((long) BgL_auxz00_4201 - 3))->pair_t).
403 			     car);
404 			}
405 			BgL_testz00_4199 =
406 			  ((((long) BgL_auxz00_4200) & ((1 << 2) - 1)) == 3);
407 		      }
408 		      if (BgL_testz00_4199) {
409 			goto BgL_tagzd21971zd2_948;
410 		      } else {
411 			if ((BgL_namedzf3zf3_42 !=
412 			     ((obj_t) (obj_t)
413 			      ((long) (((long) (1) << 2) | 2))))) {
414 			  obj_t BgL_v1050z00_1022;
415 			  {
416 			    int BgL_auxz00_4209;
417 			    BgL_auxz00_4209 = (int) (((long) 3));
418 			    BgL_v1050z00_1022 =
419 			      create_vector (BgL_auxz00_4209);
420 			  }
421 			  {
422 			    obj_t BgL_arg1604z00_1024;
423 			    BgL_arg1604z00_1024 =
424 			      make_pair (BgL_wherez00_41, BgL_bodyz00_40);
425 			    {
426 			      int BgL_auxz00_4213;
427 			      BgL_auxz00_4213 = (int) (((long) 2));
428 			      ((&
429 				(((obj_t) (BgL_v1050z00_1022))->vector_t.
430 				 obj0))[BgL_auxz00_4213] =
431 			       BgL_arg1604z00_1024,
432 			       ((obj_t) (obj_t)
433 				((long) (((long) (3) << 2) | 2))));
434 			    }
435 			  }
436 			  {
437 			    int BgL_auxz00_4216;
438 			    BgL_auxz00_4216 = (int) (((long) 1));
439 			    ((&(((obj_t) (BgL_v1050z00_1022))->vector_t.obj0))
440 			     [BgL_auxz00_4216] =
441 			     BgL_locz00_43,
442 			     ((obj_t) (obj_t)
443 			      ((long) (((long) (3) << 2) | 2))));
444 			  }
445 			  {
446 			    obj_t BgL_auxz00_4221;
447 			    int BgL_auxz00_4219;
448 			    BgL_auxz00_4221 =
449 			      (obj_t) ((long)
450 				       (((long) (((long) 50)) << 2) | 1));
451 			    BgL_auxz00_4219 = (int) (((long) 0));
452 			    ((&(((obj_t) (BgL_v1050z00_1022))->vector_t.obj0))
453 			     [BgL_auxz00_4219] =
454 			     BgL_auxz00_4221,
455 			     ((obj_t) (obj_t)
456 			      ((long) (((long) (3) << 2) | 2))));
457 			  }
458 			  return BgL_v1050z00_1022;
459 			} else {
460 			  obj_t BgL_v1051z00_1025;
461 			  {
462 			    int BgL_auxz00_4224;
463 			    BgL_auxz00_4224 = (int) (((long) 3));
464 			    BgL_v1051z00_1025 =
465 			      create_vector (BgL_auxz00_4224);
466 			  }
467 			  {
468 			    int BgL_auxz00_4227;
469 			    BgL_auxz00_4227 = (int) (((long) 2));
470 			    ((&(((obj_t) (BgL_v1051z00_1025))->vector_t.obj0))
471 			     [BgL_auxz00_4227] =
472 			     BgL_bodyz00_40,
473 			     ((obj_t) (obj_t)
474 			      ((long) (((long) (3) << 2) | 2))));
475 			  }
476 			  {
477 			    int BgL_auxz00_4230;
478 			    BgL_auxz00_4230 = (int) (((long) 1));
479 			    ((&(((obj_t) (BgL_v1051z00_1025))->vector_t.obj0))
480 			     [BgL_auxz00_4230] =
481 			     BgL_locz00_43,
482 			     ((obj_t) (obj_t)
483 			      ((long) (((long) (3) << 2) | 2))));
484 			  }
485 			  {
486 			    obj_t BgL_auxz00_4235;
487 			    int BgL_auxz00_4233;
488 			    BgL_auxz00_4235 =
489 			      (obj_t) ((long)
490 				       (((long) (((long) 54)) << 2) | 1));
491 			    BgL_auxz00_4233 = (int) (((long) 0));
492 			    ((&(((obj_t) (BgL_v1051z00_1025))->vector_t.obj0))
493 			     [BgL_auxz00_4233] =
494 			     BgL_auxz00_4235,
495 			     ((obj_t) (obj_t)
496 			      ((long) (((long) (3) << 2) | 2))));
497 			  }
498 			  return BgL_v1051z00_1025;
499 			}
500 		      }
501 		    }
502 		  }
503 		}
504 	      }
505 	    } else {
506 	      int BgL_testz00_4238;
507 	      {
508 		obj_t BgL_auxz00_4239;
509 		BgL_auxz00_4239 =
510 		  ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).car);
511 		BgL_testz00_4238 =
512 		  ((((long) BgL_auxz00_4239) & ((1 << 2) - 1)) == 3);
513 	      }
514 	      if (BgL_testz00_4238) {
515 		goto BgL_tagzd21971zd2_948;
516 	      } else {
517 		int BgL_testz00_4242;
518 		{
519 		  obj_t BgL_auxz00_4243;
520 		  BgL_auxz00_4243 =
521 		    ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).
522 		     car);
523 		  BgL_testz00_4242 =
524 		    ((((long) BgL_auxz00_4243) & ((1 << 2) - 1)) == 3);
525 		}
526 		if (BgL_testz00_4242) {
527 		  goto BgL_tagzd21971zd2_948;
528 		} else {
529 		  if ((BgL_namedzf3zf3_42 !=
530 		       ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) {
531 		    obj_t BgL_v1048z00_1018;
532 		    {
533 		      int BgL_auxz00_4248;
534 		      BgL_auxz00_4248 = (int) (((long) 3));
535 		      BgL_v1048z00_1018 = create_vector (BgL_auxz00_4248);
536 		    }
537 		    {
538 		      obj_t BgL_arg1602z00_1020;
539 		      BgL_arg1602z00_1020 =
540 			make_pair (BgL_wherez00_41, BgL_bodyz00_40);
541 		      {
542 			int BgL_auxz00_4252;
543 			BgL_auxz00_4252 = (int) (((long) 2));
544 			((&(((obj_t) (BgL_v1048z00_1018))->vector_t.obj0))
545 			 [BgL_auxz00_4252] =
546 			 BgL_arg1602z00_1020,
547 			 ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
548 		      }
549 		    }
550 		    {
551 		      int BgL_auxz00_4255;
552 		      BgL_auxz00_4255 = (int) (((long) 1));
553 		      ((&(((obj_t) (BgL_v1048z00_1018))->vector_t.obj0))
554 		       [BgL_auxz00_4255] =
555 		       BgL_locz00_43,
556 		       ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
557 		    }
558 		    {
559 		      obj_t BgL_auxz00_4260;
560 		      int BgL_auxz00_4258;
561 		      BgL_auxz00_4260 =
562 			(obj_t) ((long) (((long) (((long) 49)) << 2) | 1));
563 		      BgL_auxz00_4258 = (int) (((long) 0));
564 		      ((&(((obj_t) (BgL_v1048z00_1018))->vector_t.obj0))
565 		       [BgL_auxz00_4258] =
566 		       BgL_auxz00_4260,
567 		       ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
568 		    }
569 		    return BgL_v1048z00_1018;
570 		  } else {
571 		    obj_t BgL_v1049z00_1021;
572 		    {
573 		      int BgL_auxz00_4263;
574 		      BgL_auxz00_4263 = (int) (((long) 3));
575 		      BgL_v1049z00_1021 = create_vector (BgL_auxz00_4263);
576 		    }
577 		    {
578 		      int BgL_auxz00_4266;
579 		      BgL_auxz00_4266 = (int) (((long) 2));
580 		      ((&(((obj_t) (BgL_v1049z00_1021))->vector_t.obj0))
581 		       [BgL_auxz00_4266] =
582 		       BgL_bodyz00_40,
583 		       ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
584 		    }
585 		    {
586 		      int BgL_auxz00_4269;
587 		      BgL_auxz00_4269 = (int) (((long) 1));
588 		      ((&(((obj_t) (BgL_v1049z00_1021))->vector_t.obj0))
589 		       [BgL_auxz00_4269] =
590 		       BgL_locz00_43,
591 		       ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
592 		    }
593 		    {
594 		      obj_t BgL_auxz00_4274;
595 		      int BgL_auxz00_4272;
596 		      BgL_auxz00_4274 =
597 			(obj_t) ((long) (((long) (((long) 53)) << 2) | 1));
598 		      BgL_auxz00_4272 = (int) (((long) 0));
599 		      ((&(((obj_t) (BgL_v1049z00_1021))->vector_t.obj0))
600 		       [BgL_auxz00_4272] =
601 		       BgL_auxz00_4274,
602 		       ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
603 		    }
604 		    return BgL_v1049z00_1021;
605 		  }
606 		}
607 	      }
608 	    }
609 	  }
610 	} else {
611 	  int BgL_testz00_4277;
612 	  {
613 	    obj_t BgL_auxz00_4278;
614 	    BgL_auxz00_4278 =
615 	      ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).car);
616 	    BgL_testz00_4277 =
617 	      ((((long) BgL_auxz00_4278) & ((1 << 2) - 1)) == 3);
618 	  }
619 	  if (BgL_testz00_4277) {
620 	    goto BgL_tagzd21971zd2_948;
621 	  } else {
622 	    if ((BgL_namedzf3zf3_42 !=
623 		 ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) {
624 	      obj_t BgL_v1046z00_1014;
625 	      {
626 		int BgL_auxz00_4283;
627 		BgL_auxz00_4283 = (int) (((long) 3));
628 		BgL_v1046z00_1014 = create_vector (BgL_auxz00_4283);
629 	      }
630 	      {
631 		obj_t BgL_arg1600z00_1016;
632 		BgL_arg1600z00_1016 =
633 		  make_pair (BgL_wherez00_41, BgL_bodyz00_40);
634 		{
635 		  int BgL_auxz00_4287;
636 		  BgL_auxz00_4287 = (int) (((long) 2));
637 		  ((&(((obj_t) (BgL_v1046z00_1014))->vector_t.obj0))
638 		   [BgL_auxz00_4287] =
639 		   BgL_arg1600z00_1016,
640 		   ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
641 		}
642 	      }
643 	      {
644 		int BgL_auxz00_4290;
645 		BgL_auxz00_4290 = (int) (((long) 1));
646 		((&(((obj_t) (BgL_v1046z00_1014))->vector_t.obj0))
647 		 [BgL_auxz00_4290] =
648 		 BgL_locz00_43,
649 		 ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
650 	      }
651 	      {
652 		obj_t BgL_auxz00_4295;
653 		int BgL_auxz00_4293;
654 		BgL_auxz00_4295 =
655 		  (obj_t) ((long) (((long) (((long) 48)) << 2) | 1));
656 		BgL_auxz00_4293 = (int) (((long) 0));
657 		((&(((obj_t) (BgL_v1046z00_1014))->vector_t.obj0))
658 		 [BgL_auxz00_4293] =
659 		 BgL_auxz00_4295,
660 		 ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
661 	      }
662 	      return BgL_v1046z00_1014;
663 	    } else {
664 	      obj_t BgL_v1047z00_1017;
665 	      {
666 		int BgL_auxz00_4298;
667 		BgL_auxz00_4298 = (int) (((long) 3));
668 		BgL_v1047z00_1017 = create_vector (BgL_auxz00_4298);
669 	      }
670 	      {
671 		int BgL_auxz00_4301;
672 		BgL_auxz00_4301 = (int) (((long) 2));
673 		((&(((obj_t) (BgL_v1047z00_1017))->vector_t.obj0))
674 		 [BgL_auxz00_4301] =
675 		 BgL_bodyz00_40,
676 		 ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
677 	      }
678 	      {
679 		int BgL_auxz00_4304;
680 		BgL_auxz00_4304 = (int) (((long) 1));
681 		((&(((obj_t) (BgL_v1047z00_1017))->vector_t.obj0))
682 		 [BgL_auxz00_4304] =
683 		 BgL_locz00_43,
684 		 ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
685 	      }
686 	      {
687 		obj_t BgL_auxz00_4309;
688 		int BgL_auxz00_4307;
689 		BgL_auxz00_4309 =
690 		  (obj_t) ((long) (((long) (((long) 52)) << 2) | 1));
691 		BgL_auxz00_4307 = (int) (((long) 0));
692 		((&(((obj_t) (BgL_v1047z00_1017))->vector_t.obj0))
693 		 [BgL_auxz00_4307] =
694 		 BgL_auxz00_4309,
695 		 ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
696 	      }
697 	      return BgL_v1047z00_1017;
698 	    }
699 	  }
700 	}
701       }
702     } else {
703       if ((BgL_namedzf3zf3_42 !=
704 	   ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) {
705 	obj_t BgL_v1044z00_1010;
706 	{
707 	  int BgL_auxz00_4314;
708 	  BgL_auxz00_4314 = (int) (((long) 3));
709 	  BgL_v1044z00_1010 = create_vector (BgL_auxz00_4314);
710 	}
711 	{
712 	  obj_t BgL_arg1598z00_1012;
713 	  BgL_arg1598z00_1012 = make_pair (BgL_wherez00_41, BgL_bodyz00_40);
714 	  {
715 	    int BgL_auxz00_4318;
716 	    BgL_auxz00_4318 = (int) (((long) 2));
717 	    ((&(((obj_t) (BgL_v1044z00_1010))->vector_t.obj0))
718 	     [BgL_auxz00_4318] =
719 	     BgL_arg1598z00_1012,
720 	     ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
721 	  }
722 	}
723 	{
724 	  int BgL_auxz00_4321;
725 	  BgL_auxz00_4321 = (int) (((long) 1));
726 	  ((&(((obj_t) (BgL_v1044z00_1010))->vector_t.obj0))[BgL_auxz00_4321]
727 	   =
728 	   BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
729 	}
730 	{
731 	  obj_t BgL_auxz00_4326;
732 	  int BgL_auxz00_4324;
733 	  BgL_auxz00_4326 =
734 	    (obj_t) ((long) (((long) (((long) 47)) << 2) | 1));
735 	  BgL_auxz00_4324 = (int) (((long) 0));
736 	  ((&(((obj_t) (BgL_v1044z00_1010))->vector_t.obj0))[BgL_auxz00_4324]
737 	   =
738 	   BgL_auxz00_4326,
739 	   ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
740 	}
741 	return BgL_v1044z00_1010;
742       } else {
743 	obj_t BgL_v1045z00_1013;
744 	{
745 	  int BgL_auxz00_4329;
746 	  BgL_auxz00_4329 = (int) (((long) 3));
747 	  BgL_v1045z00_1013 = create_vector (BgL_auxz00_4329);
748 	}
749 	{
750 	  int BgL_auxz00_4332;
751 	  BgL_auxz00_4332 = (int) (((long) 2));
752 	  ((&(((obj_t) (BgL_v1045z00_1013))->vector_t.obj0))[BgL_auxz00_4332]
753 	   =
754 	   BgL_bodyz00_40,
755 	   ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
756 	}
757 	{
758 	  int BgL_auxz00_4335;
759 	  BgL_auxz00_4335 = (int) (((long) 1));
760 	  ((&(((obj_t) (BgL_v1045z00_1013))->vector_t.obj0))[BgL_auxz00_4335]
761 	   =
762 	   BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
763 	}
764 	{
765 	  obj_t BgL_auxz00_4340;
766 	  int BgL_auxz00_4338;
767 	  BgL_auxz00_4340 =
768 	    (obj_t) ((long) (((long) (((long) 51)) << 2) | 1));
769 	  BgL_auxz00_4338 = (int) (((long) 0));
770 	  ((&(((obj_t) (BgL_v1045z00_1013))->vector_t.obj0))[BgL_auxz00_4338]
771 	   =
772 	   BgL_auxz00_4340,
773 	   ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2))));
774 	}
775 	return BgL_v1045z00_1013;
776       }
777     }
778   }
779 }
780