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