comparison interps/c-intercal/oilout01.c @ 996:859f9b4339e6

<Gregor> tar xf egobot.tar.xz
author HackBot
date Sun, 09 Dec 2012 19:30:08 +0000
parents
children
comparison
equal deleted inserted replaced
995:6883f5911eb7 996:859f9b4339e6
1 /* Automatically generated output, edit source and recompile to change */
2 #include "oil.h"
3 int optimize_pass1_1(node *np)
4 { int opted=0;
5 unsigned long c,c1,c2,c3,c4,c5,c6,c7,c8,c9;
6 unsigned long x,x1,x2,x3,x4,x5,x6,x7,x8,x9,r;
7 int tempw;
8 node *tp;
9 checknodeactbits(np);
10 if(np->opcode==C_LSHIFTBY &&
11 (np->lval->opcode==MESH || np->lval->opcode==MESH32) &&
12 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
13 do
14 {
15 x2=np->rval->constant; c2=np->rval->optdata;
16 x1=np->lval->constant; c1=np->lval->optdata;
17 OPTING(cfold);
18 tp=newnode();
19 MAYBENEWNODE(tp);
20 tp->opcode=MESH32;
21 tp->width=32;
22 tp->constant=(x1 << x2);
23 nodefree(np->lval); nodefree(np->rval);
24 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
25 } while(0);
26
27 checknodeactbits(np);
28 if(np->opcode==C_ISEQUAL &&
29 (np->lval->opcode==MESH || np->lval->opcode==MESH32) &&
30 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
31 do
32 {
33 x2=np->rval->constant; c2=np->rval->optdata;
34 x1=np->lval->constant; c1=np->lval->optdata;
35 OPTING(cfold);
36 tp=newnode();
37 MAYBENEWNODE(tp);
38 tp->opcode=MESH32;
39 tp->width=32;
40 tp->constant=(x1 == x2);
41 nodefree(np->lval); nodefree(np->rval);
42 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
43 } while(0);
44
45 checknodeactbits(np);
46 if(np->opcode==C_NOTEQUAL &&
47 (np->lval->opcode==MESH || np->lval->opcode==MESH32) &&
48 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
49 do
50 {
51 x2=np->rval->constant; c2=np->rval->optdata;
52 x1=np->lval->constant; c1=np->lval->optdata;
53 OPTING(cfold);
54 tp=newnode();
55 MAYBENEWNODE(tp);
56 tp->opcode=MESH32;
57 tp->width=32;
58 tp->constant=(x1 != x2);
59 nodefree(np->lval); nodefree(np->rval);
60 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
61 } while(0);
62
63 checknodeactbits(np);
64 if(np->opcode==C_AND &&
65 np->lval->opcode==C_OR &&
66 (np->lval->rval->opcode==MESH || np->lval->rval->opcode==MESH32) &&
67 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
68 do
69 {
70 x3=np->rval->constant; c3=np->rval->optdata;
71 x2=np->lval->rval->constant; c2=np->lval->rval->optdata;
72 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
73 OPTING(cfoldintoorinand);
74 tp=newnode();
75 MAYBENEWNODE(tp);
76 tp->opcode=C_AND;
77 tp->width=32;
78 MAYBENEWNODE(tp->lval);
79 tp->lval->opcode=C_OR;
80 tp->lval->width=32;
81 tp->lval->lval=np->lval->lval;
82 np->lval->lval=0;
83 MAYBENEWNODE(tp->lval->rval);
84 tp->lval->rval->opcode=MESH32;
85 tp->lval->rval->width=32;
86 tp->lval->rval->constant=(x2 & x3);
87 tp->rval=np->rval;
88 np->rval=0;
89 nodefree(np->lval); nodefree(np->rval);
90 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
91 } while(0);
92
93 checknodeactbits(np);
94 if(np->opcode==SELECT &&
95 np->lval->opcode==AND &&
96 np->lval->width==32 &&
97 np->lval->rval->opcode==MINGLE &&
98 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
99 do
100 {
101 x3=np->rval->constant; c3=np->rval->optdata;
102 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
103 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
104 x=x1; c=c1; if(!(!(c&4294901760LU))) break;
105 x=x2; c=c2; if(!(!(c&4294901760LU))) break;
106 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
107 OPTING(cbinand);
108 tp=newnode();
109 MAYBENEWNODE(tp);
110 tp->opcode=C_AND;
111 tp->width=32;
112 MAYBENEWNODE(tp->lval);
113 tp->lval->opcode=C_AND;
114 tp->lval->width=32;
115 tp->lval->lval=np->lval->rval->lval;
116 np->lval->rval->lval=0;
117 tp->lval->rval=np->lval->rval->rval;
118 np->lval->rval->rval=0;
119 MAYBENEWNODE(tp->rval);
120 tp->rval->opcode=MESH32;
121 tp->rval->width=32;
122 tp->rval->constant=(iselect(x3,1431655765LU));
123 nodefree(np->lval); nodefree(np->rval);
124 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
125 } while(0);
126
127 checknodeactbits(np);
128 if(np->opcode==SELECT &&
129 np->lval->opcode==OR &&
130 np->lval->width==32 &&
131 np->lval->rval->opcode==MINGLE &&
132 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
133 do
134 {
135 x3=np->rval->constant; c3=np->rval->optdata;
136 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
137 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
138 x=x1; c=c1; if(!(!(c&4294901760LU))) break;
139 x=x2; c=c2; if(!(!(c&4294901760LU))) break;
140 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
141 OPTING(cbinor);
142 tp=newnode();
143 MAYBENEWNODE(tp);
144 tp->opcode=C_AND;
145 tp->width=32;
146 MAYBENEWNODE(tp->lval);
147 tp->lval->opcode=C_OR;
148 tp->lval->width=32;
149 tp->lval->lval=np->lval->rval->lval;
150 np->lval->rval->lval=0;
151 tp->lval->rval=np->lval->rval->rval;
152 np->lval->rval->rval=0;
153 MAYBENEWNODE(tp->rval);
154 tp->rval->opcode=MESH32;
155 tp->rval->width=32;
156 tp->rval->constant=(iselect(x3,1431655765LU));
157 nodefree(np->lval); nodefree(np->rval);
158 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
159 } while(0);
160
161 checknodeactbits(np);
162 if(np->opcode==SELECT &&
163 np->lval->opcode==XOR &&
164 np->lval->width==32 &&
165 np->lval->rval->opcode==MINGLE &&
166 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
167 do
168 {
169 x3=np->rval->constant; c3=np->rval->optdata;
170 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
171 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
172 x=x1; c=c1; if(!(!(c&4294901760LU))) break;
173 x=x2; c=c2; if(!(!(c&4294901760LU))) break;
174 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
175 OPTING(cbinxor);
176 tp=newnode();
177 MAYBENEWNODE(tp);
178 tp->opcode=C_AND;
179 tp->width=32;
180 MAYBENEWNODE(tp->lval);
181 tp->lval->opcode=C_XOR;
182 tp->lval->width=32;
183 tp->lval->lval=np->lval->rval->lval;
184 np->lval->rval->lval=0;
185 tp->lval->rval=np->lval->rval->rval;
186 np->lval->rval->rval=0;
187 MAYBENEWNODE(tp->rval);
188 tp->rval->opcode=MESH32;
189 tp->rval->width=32;
190 tp->rval->constant=(iselect(x3,1431655765LU));
191 nodefree(np->lval); nodefree(np->rval);
192 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
193 } while(0);
194
195 checknodeactbits(np);
196 if(np->opcode==C_AND &&
197 np->lval->opcode==AND &&
198 np->lval->width==32 &&
199 np->lval->rval->opcode==MINGLE &&
200 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
201 do
202 {
203 x3=np->rval->constant; c3=np->rval->optdata;
204 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
205 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
206 x=x1; c=c1; if(!(!(c&4294901760LU))) break;
207 x=x2; c=c2; if(!(!(c&4294901760LU))) break;
208 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
209 OPTING(cbinandnoselect);
210 tp=newnode();
211 MAYBENEWNODE(tp);
212 tp->opcode=MINGLE;
213 tp->width=32;
214 MAYBENEWNODE(tp->lval);
215 tp->lval->opcode=MESH32;
216 tp->lval->width=32;
217 tp->lval->constant=(0LU);
218 MAYBENEWNODE(tp->rval);
219 tp->rval->opcode=C_AND;
220 tp->rval->width=32;
221 MAYBENEWNODE(tp->rval->lval);
222 tp->rval->lval->opcode=C_AND;
223 tp->rval->lval->width=32;
224 tp->rval->lval->lval=np->lval->rval->lval;
225 np->lval->rval->lval=0;
226 tp->rval->lval->rval=np->lval->rval->rval;
227 np->lval->rval->rval=0;
228 MAYBENEWNODE(tp->rval->rval);
229 tp->rval->rval->opcode=MESH32;
230 tp->rval->rval->width=32;
231 tp->rval->rval->constant=(iselect(x3,1431655765LU));
232 nodefree(np->lval); nodefree(np->rval);
233 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
234 } while(0);
235
236 checknodeactbits(np);
237 if(np->opcode==C_AND &&
238 np->lval->opcode==OR &&
239 np->lval->width==32 &&
240 np->lval->rval->opcode==MINGLE &&
241 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
242 do
243 {
244 x3=np->rval->constant; c3=np->rval->optdata;
245 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
246 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
247 x=x1; c=c1; if(!(!(c&4294901760LU))) break;
248 x=x2; c=c2; if(!(!(c&4294901760LU))) break;
249 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
250 OPTING(cbinornoselect);
251 tp=newnode();
252 MAYBENEWNODE(tp);
253 tp->opcode=MINGLE;
254 tp->width=32;
255 MAYBENEWNODE(tp->lval);
256 tp->lval->opcode=MESH32;
257 tp->lval->width=32;
258 tp->lval->constant=(0LU);
259 MAYBENEWNODE(tp->rval);
260 tp->rval->opcode=C_AND;
261 tp->rval->width=32;
262 MAYBENEWNODE(tp->rval->lval);
263 tp->rval->lval->opcode=C_OR;
264 tp->rval->lval->width=32;
265 tp->rval->lval->lval=np->lval->rval->lval;
266 np->lval->rval->lval=0;
267 tp->rval->lval->rval=np->lval->rval->rval;
268 np->lval->rval->rval=0;
269 MAYBENEWNODE(tp->rval->rval);
270 tp->rval->rval->opcode=MESH32;
271 tp->rval->rval->width=32;
272 tp->rval->rval->constant=(iselect(x3,1431655765LU));
273 nodefree(np->lval); nodefree(np->rval);
274 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
275 } while(0);
276
277 checknodeactbits(np);
278 if(np->opcode==C_AND &&
279 np->lval->opcode==XOR &&
280 np->lval->width==32 &&
281 np->lval->rval->opcode==MINGLE &&
282 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
283 do
284 {
285 x3=np->rval->constant; c3=np->rval->optdata;
286 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
287 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
288 x=x1; c=c1; if(!(!(c&4294901760LU))) break;
289 x=x2; c=c2; if(!(!(c&4294901760LU))) break;
290 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
291 OPTING(cbinxornoselect);
292 tp=newnode();
293 MAYBENEWNODE(tp);
294 tp->opcode=MINGLE;
295 tp->width=32;
296 MAYBENEWNODE(tp->lval);
297 tp->lval->opcode=MESH32;
298 tp->lval->width=32;
299 tp->lval->constant=(0LU);
300 MAYBENEWNODE(tp->rval);
301 tp->rval->opcode=C_AND;
302 tp->rval->width=32;
303 MAYBENEWNODE(tp->rval->lval);
304 tp->rval->lval->opcode=C_XOR;
305 tp->rval->lval->width=32;
306 tp->rval->lval->lval=np->lval->rval->lval;
307 np->lval->rval->lval=0;
308 tp->rval->lval->rval=np->lval->rval->rval;
309 np->lval->rval->rval=0;
310 MAYBENEWNODE(tp->rval->rval);
311 tp->rval->rval->opcode=MESH32;
312 tp->rval->rval->width=32;
313 tp->rval->rval->constant=(iselect(x3,1431655765LU));
314 nodefree(np->lval); nodefree(np->rval);
315 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
316 } while(0);
317
318 checknodeactbits(np);
319 if(np->opcode==SELECT &&
320 np->lval->opcode==AND &&
321 np->lval->width==32 &&
322 np->lval->rval->opcode==C_OR &&
323 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
324 do
325 {
326 x3=np->rval->constant; c3=np->rval->optdata;
327 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
328 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
329 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
330 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
331 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
332 OPTING(cbinandnomingle);
333 tp=newnode();
334 MAYBENEWNODE(tp);
335 tp->opcode=SELECT;
336 tp->width=32;
337 MAYBENEWNODE(tp->lval);
338 tp->lval->opcode=C_AND;
339 tp->lval->width=32;
340 MAYBENEWNODE(tp->lval->lval);
341 tp->lval->lval->opcode=C_RSHIFTBY;
342 tp->lval->lval->width=32;
343 tp->lval->lval->lval=np->lval->rval->rval;
344 np->lval->rval->rval=0;
345 MAYBENEWNODE(tp->lval->lval->rval);
346 tp->lval->lval->rval->opcode=MESH32;
347 tp->lval->lval->rval->width=32;
348 tp->lval->lval->rval->constant=(1LU);
349 tp->lval->rval=np->lval->rval->lval;
350 np->lval->rval->lval=0;
351 tp->rval=np->rval;
352 np->rval=0;
353 nodefree(np->lval); nodefree(np->rval);
354 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
355 } while(0);
356
357 checknodeactbits(np);
358 if(np->opcode==SELECT &&
359 np->lval->opcode==AND &&
360 np->lval->width==32 &&
361 np->lval->rval->opcode==C_OR &&
362 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
363 do
364 {
365 x3=np->rval->constant; c3=np->rval->optdata;
366 x2=np->lval->rval->lval->constant; c2=np->lval->rval->lval->optdata;
367 x1=np->lval->rval->rval->constant; c1=np->lval->rval->rval->optdata;
368 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
369 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
370 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
371 OPTING(cbinandnomingle);
372 tp=newnode();
373 MAYBENEWNODE(tp);
374 tp->opcode=SELECT;
375 tp->width=32;
376 MAYBENEWNODE(tp->lval);
377 tp->lval->opcode=C_AND;
378 tp->lval->width=32;
379 MAYBENEWNODE(tp->lval->lval);
380 tp->lval->lval->opcode=C_RSHIFTBY;
381 tp->lval->lval->width=32;
382 tp->lval->lval->lval=np->lval->rval->lval;
383 np->lval->rval->lval=0;
384 MAYBENEWNODE(tp->lval->lval->rval);
385 tp->lval->lval->rval->opcode=MESH32;
386 tp->lval->lval->rval->width=32;
387 tp->lval->lval->rval->constant=(1LU);
388 tp->lval->rval=np->lval->rval->rval;
389 np->lval->rval->rval=0;
390 tp->rval=np->rval;
391 np->rval=0;
392 nodefree(np->lval); nodefree(np->rval);
393 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
394 } while(0);
395
396 checknodeactbits(np);
397 if(np->opcode==C_AND &&
398 np->lval->opcode==AND &&
399 np->lval->width==32 &&
400 np->lval->rval->opcode==C_OR &&
401 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
402 do
403 {
404 x3=np->rval->constant; c3=np->rval->optdata;
405 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
406 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
407 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
408 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
409 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
410 OPTING(cbinandnomingle);
411 tp=newnode();
412 MAYBENEWNODE(tp);
413 tp->opcode=C_AND;
414 tp->width=32;
415 MAYBENEWNODE(tp->lval);
416 tp->lval->opcode=C_AND;
417 tp->lval->width=32;
418 MAYBENEWNODE(tp->lval->lval);
419 tp->lval->lval->opcode=C_RSHIFTBY;
420 tp->lval->lval->width=32;
421 tp->lval->lval->lval=np->lval->rval->rval;
422 np->lval->rval->rval=0;
423 MAYBENEWNODE(tp->lval->lval->rval);
424 tp->lval->lval->rval->opcode=MESH32;
425 tp->lval->lval->rval->width=32;
426 tp->lval->lval->rval->constant=(1LU);
427 tp->lval->rval=np->lval->rval->lval;
428 np->lval->rval->lval=0;
429 tp->rval=np->rval;
430 np->rval=0;
431 nodefree(np->lval); nodefree(np->rval);
432 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
433 } while(0);
434
435 checknodeactbits(np);
436 if(np->opcode==C_AND &&
437 np->lval->opcode==AND &&
438 np->lval->width==32 &&
439 np->lval->rval->opcode==C_OR &&
440 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
441 do
442 {
443 x3=np->rval->constant; c3=np->rval->optdata;
444 x2=np->lval->rval->lval->constant; c2=np->lval->rval->lval->optdata;
445 x1=np->lval->rval->rval->constant; c1=np->lval->rval->rval->optdata;
446 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
447 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
448 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
449 OPTING(cbinandnomingle);
450 tp=newnode();
451 MAYBENEWNODE(tp);
452 tp->opcode=C_AND;
453 tp->width=32;
454 MAYBENEWNODE(tp->lval);
455 tp->lval->opcode=C_AND;
456 tp->lval->width=32;
457 MAYBENEWNODE(tp->lval->lval);
458 tp->lval->lval->opcode=C_RSHIFTBY;
459 tp->lval->lval->width=32;
460 tp->lval->lval->lval=np->lval->rval->lval;
461 np->lval->rval->lval=0;
462 MAYBENEWNODE(tp->lval->lval->rval);
463 tp->lval->lval->rval->opcode=MESH32;
464 tp->lval->lval->rval->width=32;
465 tp->lval->lval->rval->constant=(1LU);
466 tp->lval->rval=np->lval->rval->rval;
467 np->lval->rval->rval=0;
468 tp->rval=np->rval;
469 np->rval=0;
470 nodefree(np->lval); nodefree(np->rval);
471 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
472 } while(0);
473
474 checknodeactbits(np);
475 if(np->opcode==SELECT &&
476 np->lval->opcode==OR &&
477 np->lval->width==32 &&
478 np->lval->rval->opcode==C_OR &&
479 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
480 do
481 {
482 x3=np->rval->constant; c3=np->rval->optdata;
483 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
484 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
485 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
486 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
487 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
488 OPTING(cbinornomingle);
489 tp=newnode();
490 MAYBENEWNODE(tp);
491 tp->opcode=SELECT;
492 tp->width=32;
493 MAYBENEWNODE(tp->lval);
494 tp->lval->opcode=C_OR;
495 tp->lval->width=32;
496 MAYBENEWNODE(tp->lval->lval);
497 tp->lval->lval->opcode=C_RSHIFTBY;
498 tp->lval->lval->width=32;
499 tp->lval->lval->lval=np->lval->rval->rval;
500 np->lval->rval->rval=0;
501 MAYBENEWNODE(tp->lval->lval->rval);
502 tp->lval->lval->rval->opcode=MESH32;
503 tp->lval->lval->rval->width=32;
504 tp->lval->lval->rval->constant=(1LU);
505 tp->lval->rval=np->lval->rval->lval;
506 np->lval->rval->lval=0;
507 tp->rval=np->rval;
508 np->rval=0;
509 nodefree(np->lval); nodefree(np->rval);
510 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
511 } while(0);
512
513 checknodeactbits(np);
514 if(np->opcode==SELECT &&
515 np->lval->opcode==OR &&
516 np->lval->width==32 &&
517 np->lval->rval->opcode==C_OR &&
518 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
519 do
520 {
521 x3=np->rval->constant; c3=np->rval->optdata;
522 x2=np->lval->rval->lval->constant; c2=np->lval->rval->lval->optdata;
523 x1=np->lval->rval->rval->constant; c1=np->lval->rval->rval->optdata;
524 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
525 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
526 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
527 OPTING(cbinornomingle);
528 tp=newnode();
529 MAYBENEWNODE(tp);
530 tp->opcode=SELECT;
531 tp->width=32;
532 MAYBENEWNODE(tp->lval);
533 tp->lval->opcode=C_OR;
534 tp->lval->width=32;
535 MAYBENEWNODE(tp->lval->lval);
536 tp->lval->lval->opcode=C_RSHIFTBY;
537 tp->lval->lval->width=32;
538 tp->lval->lval->lval=np->lval->rval->lval;
539 np->lval->rval->lval=0;
540 MAYBENEWNODE(tp->lval->lval->rval);
541 tp->lval->lval->rval->opcode=MESH32;
542 tp->lval->lval->rval->width=32;
543 tp->lval->lval->rval->constant=(1LU);
544 tp->lval->rval=np->lval->rval->rval;
545 np->lval->rval->rval=0;
546 tp->rval=np->rval;
547 np->rval=0;
548 nodefree(np->lval); nodefree(np->rval);
549 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
550 } while(0);
551
552 checknodeactbits(np);
553 if(np->opcode==C_AND &&
554 np->lval->opcode==OR &&
555 np->lval->width==32 &&
556 np->lval->rval->opcode==C_OR &&
557 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
558 do
559 {
560 x3=np->rval->constant; c3=np->rval->optdata;
561 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
562 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
563 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
564 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
565 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
566 OPTING(cbinornomingle);
567 tp=newnode();
568 MAYBENEWNODE(tp);
569 tp->opcode=C_AND;
570 tp->width=32;
571 MAYBENEWNODE(tp->lval);
572 tp->lval->opcode=C_OR;
573 tp->lval->width=32;
574 MAYBENEWNODE(tp->lval->lval);
575 tp->lval->lval->opcode=C_RSHIFTBY;
576 tp->lval->lval->width=32;
577 tp->lval->lval->lval=np->lval->rval->rval;
578 np->lval->rval->rval=0;
579 MAYBENEWNODE(tp->lval->lval->rval);
580 tp->lval->lval->rval->opcode=MESH32;
581 tp->lval->lval->rval->width=32;
582 tp->lval->lval->rval->constant=(1LU);
583 tp->lval->rval=np->lval->rval->lval;
584 np->lval->rval->lval=0;
585 tp->rval=np->rval;
586 np->rval=0;
587 nodefree(np->lval); nodefree(np->rval);
588 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
589 } while(0);
590
591 checknodeactbits(np);
592 if(np->opcode==C_AND &&
593 np->lval->opcode==OR &&
594 np->lval->width==32 &&
595 np->lval->rval->opcode==C_OR &&
596 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
597 do
598 {
599 x3=np->rval->constant; c3=np->rval->optdata;
600 x2=np->lval->rval->lval->constant; c2=np->lval->rval->lval->optdata;
601 x1=np->lval->rval->rval->constant; c1=np->lval->rval->rval->optdata;
602 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
603 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
604 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
605 OPTING(cbinornomingle);
606 tp=newnode();
607 MAYBENEWNODE(tp);
608 tp->opcode=C_AND;
609 tp->width=32;
610 MAYBENEWNODE(tp->lval);
611 tp->lval->opcode=C_OR;
612 tp->lval->width=32;
613 MAYBENEWNODE(tp->lval->lval);
614 tp->lval->lval->opcode=C_RSHIFTBY;
615 tp->lval->lval->width=32;
616 tp->lval->lval->lval=np->lval->rval->lval;
617 np->lval->rval->lval=0;
618 MAYBENEWNODE(tp->lval->lval->rval);
619 tp->lval->lval->rval->opcode=MESH32;
620 tp->lval->lval->rval->width=32;
621 tp->lval->lval->rval->constant=(1LU);
622 tp->lval->rval=np->lval->rval->rval;
623 np->lval->rval->rval=0;
624 tp->rval=np->rval;
625 np->rval=0;
626 nodefree(np->lval); nodefree(np->rval);
627 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
628 } while(0);
629
630 checknodeactbits(np);
631 if(np->opcode==SELECT &&
632 np->lval->opcode==XOR &&
633 np->lval->width==32 &&
634 np->lval->rval->opcode==C_OR &&
635 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
636 do
637 {
638 x3=np->rval->constant; c3=np->rval->optdata;
639 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
640 x1=np->lval->rval->lval->constant; c1=np->lval->rval->lval->optdata;
641 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
642 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
643 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
644 OPTING(cbinxornomingle);
645 tp=newnode();
646 MAYBENEWNODE(tp);
647 tp->opcode=SELECT;
648 tp->width=32;
649 MAYBENEWNODE(tp->lval);
650 tp->lval->opcode=C_XOR;
651 tp->lval->width=32;
652 MAYBENEWNODE(tp->lval->lval);
653 tp->lval->lval->opcode=C_RSHIFTBY;
654 tp->lval->lval->width=32;
655 tp->lval->lval->lval=np->lval->rval->rval;
656 np->lval->rval->rval=0;
657 MAYBENEWNODE(tp->lval->lval->rval);
658 tp->lval->lval->rval->opcode=MESH32;
659 tp->lval->lval->rval->width=32;
660 tp->lval->lval->rval->constant=(1LU);
661 tp->lval->rval=np->lval->rval->lval;
662 np->lval->rval->lval=0;
663 tp->rval=np->rval;
664 np->rval=0;
665 nodefree(np->lval); nodefree(np->rval);
666 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
667 } while(0);
668
669 checknodeactbits(np);
670 if(np->opcode==SELECT &&
671 np->lval->opcode==XOR &&
672 np->lval->width==32 &&
673 np->lval->rval->opcode==C_OR &&
674 (np->rval->opcode==MESH || np->rval->opcode==MESH32))
675 do
676 {
677 x3=np->rval->constant; c3=np->rval->optdata;
678 x2=np->lval->rval->lval->constant; c2=np->lval->rval->lval->optdata;
679 x1=np->lval->rval->rval->constant; c1=np->lval->rval->rval->optdata;
680 x=x2; c=c2; if(!(!(c&1431655765LU))) break;
681 x=x1; c=c1; if(!(!(c&2863311530LU))) break;
682 x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
683 OPTING(cbinxornomingle);
684 tp=newnode();
685 MAYBENEWNODE(tp);
686 tp->opcode=SELECT;
687 tp->width=32;
688 MAYBENEWNODE(tp->lval);
689 tp->lval->opcode=C_XOR;
690 tp->lval->width=32;
691 MAYBENEWNODE(tp->lval->lval);
692 tp->lval->lval->opcode=C_RSHIFTBY;
693 tp->lval->lval->width=32;
694 tp->lval->lval->lval=np->lval->rval->lval;
695 np->lval->rval->lval=0;
696 MAYBENEWNODE(tp->lval->lval->rval);
697 tp->lval->lval->rval->opcode=MESH32;
698 tp->lval->lval->rval->width=32;
699 tp->lval->lval->rval->constant=(1LU);
700 tp->lval->rval=np->lval->rval->rval;
701 np->lval->rval->rval=0;
702 tp->rval=np->rval;
703 np->rval=0;
704 nodefree(np->lval); nodefree(np->rval);
705 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
706 } while(0);
707
708 c=c1=c2=c3=c4=c5=c6=c7=c8=c9=0;
709 x=x1=x2=x3=x4=x5=x6=x7=x8=x9=r=0;
710 if(c+c1+c2+c3+c4+c5+c6+c7+c8+c9+r+
711 x+x1+x2+x3+x4+x5+x6+x7+x8+x9) raise(SIGSEGV);
712 return opted;
713 }