]> git.proxmox.com Git - rustc.git/blame - src/binaryen/test/passes/ssa.txt
New upstream version 1.25.0+dfsg1
[rustc.git] / src / binaryen / test / passes / ssa.txt
CommitLineData
abe05a73
XL
1(module
2 (type $0 (func (param i32)))
3 (type $1 (func))
4 (type $2 (func (result i32)))
5 (global $global$0 (mut i32) (i32.const 1))
6 (memory $0 0)
7 (func $basics (; 0 ;) (type $0) (param $x i32)
8 (local $y i32)
9 (local $z f32)
10 (local $w i64)
11 (local $t f64)
12 (local $5 i32)
13 (local $6 f64)
14 (local $7 f64)
15 (drop
16 (get_local $x)
17 )
18 (drop
19 (i32.const 0)
20 )
21 (drop
22 (f32.const 0)
23 )
24 (drop
25 (i64.const 0)
26 )
27 (drop
28 (f64.const 0)
29 )
30 (set_local $5
31 (i32.const 100)
32 )
33 (drop
34 (get_local $5)
35 )
36 (set_local $6
37 (f64.const 2)
38 )
39 (drop
40 (get_local $6)
41 )
42 (set_local $7
43 (f64.const 33)
44 )
45 (drop
46 (get_local $7)
47 )
48 (drop
49 (get_local $7)
50 )
51 )
52 (func $if (; 1 ;) (type $0) (param $p i32)
53 (local $x i32)
54 (local $y i32)
55 (local $3 i32)
56 (local $4 i32)
57 (local $5 i32)
58 (local $6 i32)
59 (local $7 i32)
60 (local $8 i32)
61 (local $9 i32)
62 (local $10 i32)
63 (local $11 i32)
64 (local $12 i32)
65 (local $13 i32)
66 (local $14 i32)
67 (local $15 i32)
68 (local $16 i32)
69 (local $17 i32)
70 (set_local $13
71 (get_local $p)
72 )
73 (block
74 (drop
75 (if (result i32)
76 (i32.const 1)
77 (i32.const 0)
78 (i32.const 0)
79 )
80 )
81 (if
82 (i32.const 1)
83 (set_local $3
84 (tee_local $15
85 (tee_local $14
86 (tee_local $12
87 (i32.const 1)
88 )
89 )
90 )
91 )
92 )
93 (drop
94 (get_local $12)
95 )
96 (if
97 (i32.const 1)
98 (set_local $4
99 (tee_local $13
100 (i32.const 1)
101 )
102 )
103 )
104 (drop
105 (get_local $13)
106 )
107 (if
108 (i32.const 1)
109 (set_local $5
110 (tee_local $15
111 (tee_local $14
112 (i32.const 2)
113 )
114 )
115 )
116 (nop)
117 )
118 (drop
119 (get_local $14)
120 )
121 (if
122 (i32.const 1)
123 (nop)
124 (set_local $6
125 (tee_local $15
126 (i32.const 3)
127 )
128 )
129 )
130 (drop
131 (get_local $15)
132 )
133 (if
134 (i32.const 1)
135 (set_local $7
136 (tee_local $16
137 (i32.const 4)
138 )
139 )
140 (set_local $8
141 (tee_local $16
142 (i32.const 5)
143 )
144 )
145 )
146 (drop
147 (get_local $16)
148 )
149 (if
150 (i32.const 1)
151 (set_local $9
152 (tee_local $17
153 (i32.const 6)
154 )
155 )
156 (block $block
157 (set_local $10
158 (i32.const 7)
159 )
160 (set_local $11
161 (tee_local $17
162 (i32.const 8)
163 )
164 )
165 )
166 )
167 (drop
168 (get_local $17)
169 )
170 )
171 )
172 (func $if2 (; 2 ;) (type $0) (param $x i32)
173 (local $1 i32)
174 (local $2 i32)
175 (set_local $2
176 (get_local $x)
177 )
178 (block
179 (if
180 (i32.const 1)
181 (block $block
182 (set_local $1
183 (tee_local $2
184 (i32.const 1)
185 )
186 )
187 (drop
188 (get_local $1)
189 )
190 )
191 )
192 (drop
193 (get_local $2)
194 )
195 )
196 )
197 (func $block (; 3 ;) (type $0) (param $x i32)
198 (local $1 i32)
199 (local $2 i32)
200 (set_local $2
201 (get_local $x)
202 )
203 (block
204 (block $out
205 (br_if $out
206 (i32.const 2)
207 )
208 (set_local $1
209 (tee_local $2
210 (i32.const 1)
211 )
212 )
213 )
214 (drop
215 (get_local $2)
216 )
217 )
218 )
219 (func $block2 (; 4 ;) (type $0) (param $x i32)
220 (local $1 i32)
221 (local $2 i32)
222 (local $3 i32)
223 (local $4 i32)
224 (local $5 i32)
225 (local $6 i32)
226 (block $out
227 (set_local $1
228 (tee_local $6
229 (i32.const 1)
230 )
231 )
232 (drop
233 (get_local $1)
234 )
235 (br_if $out
236 (i32.const 2)
237 )
238 (drop
239 (get_local $1)
240 )
241 (if
242 (i32.const 3)
243 (block $block
244 (set_local $2
245 (tee_local $6
246 (i32.const 1)
247 )
248 )
249 (drop
250 (get_local $2)
251 )
252 (br $out)
253 )
254 )
255 (drop
256 (get_local $1)
257 )
258 (set_local $3
259 (tee_local $6
260 (i32.const 4)
261 )
262 )
263 (drop
264 (get_local $3)
265 )
266 (if
267 (i32.const 5)
268 (br $out)
269 )
270 (drop
271 (get_local $3)
272 )
273 (if
274 (i32.const 6)
275 (nop)
276 )
277 (if
278 (i32.const 7)
279 (nop)
280 (nop)
281 )
282 (block $in
283 (set_local $4
284 (tee_local $6
285 (i32.const 8)
286 )
287 )
288 (drop
289 (get_local $4)
290 )
291 (br_table $in $out
292 (i32.const 9)
293 )
294 )
295 (drop
296 (get_local $4)
297 )
298 (block $in2
299 (set_local $5
300 (tee_local $6
301 (i32.const 10)
302 )
303 )
304 (drop
305 (get_local $5)
306 )
307 (br_table $out $in2
308 (i32.const 11)
309 )
310 )
311 (drop
312 (get_local $5)
313 )
314 )
315 (drop
316 (get_local $6)
317 )
318 )
319 (func $loop (; 5 ;) (type $0) (param $x i32)
320 (local $1 i32)
321 (local $2 i32)
322 (set_local $2
323 (get_local $x)
324 )
325 (block
326 (drop
327 (get_local $x)
328 )
329 (loop $moar
330 (drop
331 (get_local $2)
332 )
333 (set_local $1
334 (tee_local $2
335 (i32.const 1)
336 )
337 )
338 (br_if $moar
339 (i32.const 2)
340 )
341 )
342 (drop
343 (get_local $1)
344 )
345 )
346 )
347 (func $loop2 (; 6 ;) (type $0) (param $x i32)
348 (local $1 i32)
349 (local $2 i32)
350 (local $3 i32)
351 (local $4 i32)
352 (set_local $4
353 (get_local $x)
354 )
355 (block
356 (drop
357 (get_local $x)
358 )
359 (loop $moar
360 (drop
361 (get_local $4)
362 )
363 (set_local $1
364 (i32.const 1)
365 )
366 (drop
367 (get_local $1)
368 )
369 (set_local $2
370 (tee_local $4
371 (i32.const 123)
372 )
373 )
374 (drop
375 (get_local $2)
376 )
377 (br_if $moar
378 (i32.const 2)
379 )
380 (drop
381 (get_local $2)
382 )
383 (set_local $3
384 (i32.const 3)
385 )
386 (drop
387 (get_local $3)
388 )
389 )
390 (drop
391 (get_local $3)
392 )
393 )
394 )
395 (func $loop2-zeroinit (; 7 ;) (type $1)
396 (local $x i32)
397 (local $1 i32)
398 (local $2 i32)
399 (local $3 i32)
400 (local $4 i32)
401 (drop
402 (i32.const 0)
403 )
404 (loop $moar
405 (drop
406 (get_local $4)
407 )
408 (set_local $1
409 (i32.const 1)
410 )
411 (drop
412 (get_local $1)
413 )
414 (set_local $2
415 (tee_local $4
416 (i32.const 123)
417 )
418 )
419 (drop
420 (get_local $2)
421 )
422 (br_if $moar
423 (i32.const 2)
424 )
425 (drop
426 (get_local $2)
427 )
428 (set_local $3
429 (i32.const 3)
430 )
431 (drop
432 (get_local $3)
433 )
434 )
435 (drop
436 (get_local $3)
437 )
438 )
439 (func $real-loop (; 8 ;) (type $0) (param $param i32)
440 (local $loopvar i32)
441 (local $inc i32)
442 (local $3 i32)
443 (local $4 i32)
444 (local $5 i32)
445 (local $6 i32)
446 (set_local $3
447 (tee_local $6
448 (get_local $param)
449 )
450 )
451 (loop $more
452 (block $stop
453 (if
454 (i32.const 1)
455 (br $stop)
456 )
457 (set_local $4
458 (i32.add
459 (get_local $6)
460 (i32.const 1)
461 )
462 )
463 (set_local $5
464 (tee_local $6
465 (get_local $4)
466 )
467 )
468 (br $more)
469 )
470 )
471 (drop
472 (get_local $6)
473 )
474 )
475 (func $real-loop-outblock (; 9 ;) (type $0) (param $param i32)
476 (local $loopvar i32)
477 (local $inc i32)
478 (local $3 i32)
479 (local $4 i32)
480 (local $5 i32)
481 (local $6 i32)
482 (set_local $3
483 (tee_local $6
484 (get_local $param)
485 )
486 )
487 (block $stop
488 (loop $more
489 (if
490 (i32.const 1)
491 (br $stop)
492 )
493 (set_local $4
494 (i32.add
495 (get_local $6)
496 (i32.const 1)
497 )
498 )
499 (set_local $5
500 (tee_local $6
501 (get_local $4)
502 )
503 )
504 (br $more)
505 )
506 )
507 (drop
508 (get_local $6)
509 )
510 )
511 (func $loop-loop-param (; 10 ;) (type $0) (param $param i32)
512 (local $1 i32)
513 (local $2 i32)
514 (local $3 i32)
515 (local $4 i32)
516 (set_local $3
517 (get_local $param)
518 )
519 (set_local $4
520 (get_local $param)
521 )
522 (block
523 (loop $loop1
524 (block $out1
525 (if
526 (get_local $3)
527 (br $out1)
528 )
529 (set_local $1
530 (tee_local $4
531 (tee_local $3
532 (i32.const 1)
533 )
534 )
535 )
536 (br $loop1)
537 )
538 )
539 (loop $loop2
540 (block $out2
541 (if
542 (get_local $4)
543 (br $out2)
544 )
545 (set_local $2
546 (tee_local $4
547 (i32.const 2)
548 )
549 )
550 (br $loop2)
551 )
552 )
553 )
554 )
555 (func $loop-loop-param-nomerge (; 11 ;) (type $0) (param $param i32)
556 (local $1 i32)
557 (local $2 i32)
558 (local $3 i32)
559 (loop $loop1
560 (block $out1
561 (set_local $1
562 (tee_local $3
563 (i32.const 1)
564 )
565 )
566 (if
567 (get_local $1)
568 (br $out1)
569 )
570 (br $loop1)
571 )
572 )
573 (loop $loop2
574 (block $out2
575 (if
576 (get_local $3)
577 (br $out2)
578 )
579 (set_local $2
580 (tee_local $3
581 (i32.const 2)
582 )
583 )
584 (br $loop2)
585 )
586 )
587 )
588 (func $loop-nesting (; 12 ;) (type $0) (param $x i32)
589 (local $1 i32)
590 (local $2 i32)
591 (local $3 i32)
592 (local $4 i32)
593 (local $5 i32)
594 (set_local $3
595 (get_local $x)
596 )
597 (set_local $4
598 (get_local $x)
599 )
600 (set_local $5
601 (get_local $x)
602 )
603 (block
604 (block $out
605 (loop $loop1
606 (if
607 (get_local $3)
608 (br $out)
609 )
610 (loop $loop2
611 (if
612 (get_local $4)
613 (br $out)
614 )
615 (set_local $1
616 (tee_local $5
617 (tee_local $4
618 (i32.const 1)
619 )
620 )
621 )
622 (br $loop2)
623 )
624 (set_local $2
625 (tee_local $5
626 (tee_local $4
627 (tee_local $3
628 (i32.const 2)
629 )
630 )
631 )
632 )
633 (br $loop1)
634 )
635 )
636 (drop
637 (get_local $5)
638 )
639 )
640 )
641 (func $loop-nesting-2 (; 13 ;) (type $0) (param $x i32)
642 (local $1 i32)
643 (local $2 i32)
644 (local $3 i32)
645 (local $4 i32)
646 (local $5 i32)
647 (set_local $3
648 (get_local $x)
649 )
650 (set_local $4
651 (get_local $x)
652 )
653 (set_local $5
654 (get_local $x)
655 )
656 (block
657 (block $out
658 (loop $loop1
659 (if
660 (get_local $3)
661 (br $out)
662 )
663 (loop $loop2
664 (if
665 (get_local $4)
666 (br $out)
667 )
668 (set_local $1
669 (tee_local $5
670 (tee_local $4
671 (i32.const 1)
672 )
673 )
674 )
675 (br_if $loop2
676 (i32.const 3)
677 )
678 )
679 (set_local $2
680 (tee_local $5
681 (tee_local $4
682 (tee_local $3
683 (i32.const 2)
684 )
685 )
686 )
687 )
688 (br $loop1)
689 )
690 )
691 (drop
692 (get_local $5)
693 )
694 )
695 )
696 (func $func_6 (; 14 ;) (type $2) (result i32)
697 (local $result i32)
698 (local $zero i32)
699 (local $2 i32)
700 (local $3 i32)
701 (local $4 i32)
702 (loop $label$1
703 (if
704 (i32.eqz
705 (get_global $global$0)
706 )
707 (return
708 (get_local $4)
709 )
710 )
711 (set_global $global$0
712 (i32.const 0)
713 )
714 (set_local $2
715 (tee_local $4
716 (i32.const 1)
717 )
718 )
719 (br_if $label$1
720 (i32.const 0)
721 )
722 (set_local $3
723 (tee_local $4
724 (i32.const 0)
725 )
726 )
727 (br $label$1)
728 )
729 )
730)