]>
Commit | Line | Data |
---|---|---|
abe05a73 XL |
1 | (module |
2 | (memory (shared 256 256)) | |
3 | (type $i (func (param i32))) | |
4 | (type $ii (func (param i32 i32))) | |
5 | (type $iii (func (param i32 i32 i32))) | |
6 | (type $3 (func)) | |
7 | (table 1 1 anyfunc) | |
8 | (elem (i32.const 0) $call-i) | |
9 | (func $call-i (type $i) (param $0 i32) | |
10 | (nop) | |
11 | ) | |
12 | (func $call-ii (type $ii) (param $0 i32) (param $1 i32) | |
13 | (nop) | |
14 | ) | |
15 | (func $call-iii (type $iii) (param $0 i32) (param $1 i32) (param $2 i32) | |
16 | (nop) | |
17 | ) | |
18 | (func $b0-yes (type $i) (param $i1 i32) | |
19 | (block $topmost | |
20 | (block $block0 | |
21 | (drop | |
22 | (i32.const 10) | |
23 | ) | |
24 | ) | |
25 | ) | |
26 | ) | |
27 | (func $b0-no (type $i) (param $i1 i32) | |
28 | (block $topmost | |
29 | (block $block0 | |
30 | (br $block0) | |
31 | ) | |
32 | (br $topmost) | |
33 | ) | |
34 | ) | |
35 | (func $b0-br-but-ok (type $i) (param $i1 i32) | |
36 | (block $topmost | |
37 | (block $block0 | |
38 | (br $topmost) | |
39 | ) | |
40 | ) | |
41 | ) | |
42 | (func $b1-yes (type $i) (param $i1 i32) | |
43 | (block $topmost | |
44 | (block $block0 | |
45 | (block $block1 | |
46 | (drop | |
47 | (i32.const 10) | |
48 | ) | |
49 | ) | |
50 | ) | |
51 | ) | |
52 | ) | |
53 | (func $b2-yes (type $i) (param $i1 i32) | |
54 | (block $topmost | |
55 | (drop | |
56 | (i32.const 5) | |
57 | ) | |
58 | (block $block0 | |
59 | (drop | |
60 | (i32.const 10) | |
61 | ) | |
62 | ) | |
63 | (drop | |
64 | (i32.const 15) | |
65 | ) | |
66 | ) | |
67 | ) | |
68 | (func $b3-yes (type $i) (param $i1 i32) | |
69 | (block $topmost | |
70 | (drop | |
71 | (i32.const 3) | |
72 | ) | |
73 | (block $block0 | |
74 | (drop | |
75 | (i32.const 6) | |
76 | ) | |
77 | (block $block1 | |
78 | (drop | |
79 | (i32.const 10) | |
80 | ) | |
81 | ) | |
82 | (drop | |
83 | (i32.const 15) | |
84 | ) | |
85 | ) | |
86 | (drop | |
87 | (i32.const 20) | |
88 | ) | |
89 | ) | |
90 | ) | |
91 | (func $b4 (type $i) (param $i1 i32) | |
92 | (block $topmost | |
93 | (block $inner | |
94 | (drop | |
95 | (i32.const 10) | |
96 | ) | |
97 | (br $inner) | |
98 | ) | |
99 | ) | |
100 | ) | |
101 | (func $b5 (type $i) (param $i1 i32) | |
102 | (block $topmost | |
103 | (block $middle | |
104 | (block $inner | |
105 | (drop | |
106 | (i32.const 10) | |
107 | ) | |
108 | (br $inner) | |
109 | ) | |
110 | (br $middle) | |
111 | ) | |
112 | ) | |
113 | ) | |
114 | (func $b6 (type $i) (param $i1 i32) | |
115 | (block $topmost | |
116 | (drop | |
117 | (i32.const 5) | |
118 | ) | |
119 | (block $inner | |
120 | (drop | |
121 | (i32.const 10) | |
122 | ) | |
123 | (br $inner) | |
124 | ) | |
125 | (drop | |
126 | (i32.const 15) | |
127 | ) | |
128 | ) | |
129 | ) | |
130 | (func $b7 (type $i) (param $i1 i32) | |
131 | (block $topmost | |
132 | (drop | |
133 | (i32.const 3) | |
134 | ) | |
135 | (block $middle | |
136 | (drop | |
137 | (i32.const 6) | |
138 | ) | |
139 | (block $inner | |
140 | (drop | |
141 | (i32.const 10) | |
142 | ) | |
143 | (br $inner) | |
144 | ) | |
145 | (drop | |
146 | (i32.const 15) | |
147 | ) | |
148 | (br $middle) | |
149 | ) | |
150 | (drop | |
151 | (i32.const 20) | |
152 | ) | |
153 | ) | |
154 | ) | |
155 | (func $unary (type $3) | |
156 | (local $x i32) | |
157 | (drop | |
158 | (i32.eqz | |
159 | (block $block0 (result i32) | |
160 | (i32.const 10) | |
161 | ) | |
162 | ) | |
163 | ) | |
164 | (drop | |
165 | (i32.eqz | |
166 | (block $block1 (result i32) | |
167 | (drop | |
168 | (i32.const 10) | |
169 | ) | |
170 | (i32.const 20) | |
171 | ) | |
172 | ) | |
173 | ) | |
174 | (drop | |
175 | (i32.eqz | |
176 | (block $block2 (result i32) | |
177 | (drop | |
178 | (i32.const 10) | |
179 | ) | |
180 | (drop | |
181 | (i32.const 20) | |
182 | ) | |
183 | (i32.const 30) | |
184 | ) | |
185 | ) | |
186 | ) | |
187 | (set_local $x | |
188 | (block $block3 (result i32) | |
189 | (drop | |
190 | (i32.const 10) | |
191 | ) | |
192 | (i32.const 20) | |
193 | ) | |
194 | ) | |
195 | (drop | |
196 | (i32.load | |
197 | (block $block4 (result i32) | |
198 | (drop | |
199 | (i32.const 10) | |
200 | ) | |
201 | (i32.const 20) | |
202 | ) | |
203 | ) | |
204 | ) | |
205 | (return | |
206 | (block $block5 | |
207 | (drop | |
208 | (i32.const 10) | |
209 | ) | |
210 | (unreachable) | |
211 | ) | |
212 | ) | |
213 | ) | |
214 | (func $binary (type $3) | |
215 | (drop | |
216 | (i32.add | |
217 | (block $block0 (result i32) | |
218 | (i32.const 10) | |
219 | ) | |
220 | (i32.const 20) | |
221 | ) | |
222 | ) | |
223 | (drop | |
224 | (i32.add | |
225 | (block $block1 (result i32) | |
226 | (drop | |
227 | (i32.const 10) | |
228 | ) | |
229 | (i32.const 20) | |
230 | ) | |
231 | (i32.const 30) | |
232 | ) | |
233 | ) | |
234 | (drop | |
235 | (i32.add | |
236 | (block $block2 (result i32) | |
237 | (drop | |
238 | (i32.const 10) | |
239 | ) | |
240 | (drop | |
241 | (i32.const 20) | |
242 | ) | |
243 | (i32.const 30) | |
244 | ) | |
245 | (i32.const 40) | |
246 | ) | |
247 | ) | |
248 | (drop | |
249 | (i32.add | |
250 | (i32.const 10) | |
251 | (block $block3 (result i32) | |
252 | (i32.const 20) | |
253 | ) | |
254 | ) | |
255 | ) | |
256 | (drop | |
257 | (i32.add | |
258 | (i32.const 10) | |
259 | (block $block4 (result i32) | |
260 | (drop | |
261 | (i32.const 20) | |
262 | ) | |
263 | (i32.const 30) | |
264 | ) | |
265 | ) | |
266 | ) | |
267 | (drop | |
268 | (i32.add | |
269 | (i32.const 10) | |
270 | (block $block5 (result i32) | |
271 | (drop | |
272 | (i32.const 20) | |
273 | ) | |
274 | (drop | |
275 | (i32.const 30) | |
276 | ) | |
277 | (i32.const 40) | |
278 | ) | |
279 | ) | |
280 | ) | |
281 | (drop | |
282 | (i32.add | |
283 | (block $block6 (result i32) | |
284 | (i32.const 10) | |
285 | ) | |
286 | (block $block7 (result i32) | |
287 | (i32.const 20) | |
288 | ) | |
289 | ) | |
290 | ) | |
291 | (drop | |
292 | (i32.add | |
293 | (block $block8 (result i32) | |
294 | (drop | |
295 | (i32.const 10) | |
296 | ) | |
297 | (i32.const 20) | |
298 | ) | |
299 | (block $block9 (result i32) | |
300 | (drop | |
301 | (i32.const 30) | |
302 | ) | |
303 | (i32.const 40) | |
304 | ) | |
305 | ) | |
306 | ) | |
307 | (drop | |
308 | (i32.add | |
309 | (block $block10 (result i32) | |
310 | (drop | |
311 | (i32.const 10) | |
312 | ) | |
313 | (drop | |
314 | (i32.const 20) | |
315 | ) | |
316 | (i32.const 30) | |
317 | ) | |
318 | (block $block11 (result i32) | |
319 | (drop | |
320 | (i32.const 40) | |
321 | ) | |
322 | (drop | |
323 | (i32.const 50) | |
324 | ) | |
325 | (i32.const 60) | |
326 | ) | |
327 | ) | |
328 | ) | |
329 | (i32.store | |
330 | (i32.const 10) | |
331 | (block $block12 (result i32) | |
332 | (drop | |
333 | (i32.const 20) | |
334 | ) | |
335 | (i32.const 30) | |
336 | ) | |
337 | ) | |
338 | (i32.store | |
339 | (block $block13 (result i32) | |
340 | (drop | |
341 | (i32.const 10) | |
342 | ) | |
343 | (i32.const 20) | |
344 | ) | |
345 | (i32.const 30) | |
346 | ) | |
347 | (drop | |
348 | (i32.add | |
349 | (unreachable) | |
350 | (block $block14 (result i32) | |
351 | (drop | |
352 | (i32.const 10) | |
353 | ) | |
354 | (i32.const 20) | |
355 | ) | |
356 | ) | |
357 | ) | |
358 | (drop | |
359 | (i32.add | |
360 | (block $block15 (result i32) | |
361 | (unreachable) | |
362 | (i32.const 10) | |
363 | ) | |
364 | (block $block16 (result i32) | |
365 | (drop | |
366 | (i32.const 20) | |
367 | ) | |
368 | (i32.const 30) | |
369 | ) | |
370 | ) | |
371 | ) | |
372 | ) | |
373 | (func $trinary (type $3) | |
374 | (drop | |
375 | (select | |
376 | (block $block0 (result i32) | |
377 | (drop | |
378 | (i32.const 10) | |
379 | ) | |
380 | (i32.const 20) | |
381 | ) | |
382 | (block $block1 (result i32) | |
383 | (drop | |
384 | (i32.const 30) | |
385 | ) | |
386 | (i32.const 40) | |
387 | ) | |
388 | (block $block2 (result i32) | |
389 | (drop | |
390 | (i32.const 50) | |
391 | ) | |
392 | (i32.const 60) | |
393 | ) | |
394 | ) | |
395 | ) | |
396 | (drop | |
397 | (select | |
398 | (block $block3 (result i32) | |
399 | (i32.const 10) | |
400 | ) | |
401 | (block $block4 (result i32) | |
402 | (drop | |
403 | (i32.const 20) | |
404 | ) | |
405 | (i32.const 30) | |
406 | ) | |
407 | (block $block5 (result i32) | |
408 | (drop | |
409 | (i32.const 40) | |
410 | ) | |
411 | (i32.const 50) | |
412 | ) | |
413 | ) | |
414 | ) | |
415 | (drop | |
416 | (select | |
417 | (block $block6 (result i32) | |
418 | (drop | |
419 | (i32.const 10) | |
420 | ) | |
421 | (i32.const 20) | |
422 | ) | |
423 | (block $block7 (result i32) | |
424 | (i32.const 30) | |
425 | ) | |
426 | (block $block8 (result i32) | |
427 | (drop | |
428 | (i32.const 40) | |
429 | ) | |
430 | (i32.const 50) | |
431 | ) | |
432 | ) | |
433 | ) | |
434 | (drop | |
435 | (select | |
436 | (block $block9 (result i32) | |
437 | (drop | |
438 | (i32.const 10) | |
439 | ) | |
440 | (i32.const 20) | |
441 | ) | |
442 | (block $block10 (result i32) | |
443 | (drop | |
444 | (i32.const 30) | |
445 | ) | |
446 | (i32.const 40) | |
447 | ) | |
448 | (block $block11 (result i32) | |
449 | (i32.const 50) | |
450 | ) | |
451 | ) | |
452 | ) | |
453 | (drop | |
454 | (select | |
455 | (block $block12 (result i32) | |
456 | (i32.const 10) | |
457 | ) | |
458 | (block $block13 (result i32) | |
459 | (i32.const 20) | |
460 | ) | |
461 | (block $block14 (result i32) | |
462 | (drop | |
463 | (i32.const 30) | |
464 | ) | |
465 | (i32.const 40) | |
466 | ) | |
467 | ) | |
468 | ) | |
469 | (drop | |
470 | (select | |
471 | (block $block15 (result i32) | |
472 | (i32.const 10) | |
473 | ) | |
474 | (block $block16 (result i32) | |
475 | (drop | |
476 | (i32.const 20) | |
477 | ) | |
478 | (i32.const 30) | |
479 | ) | |
480 | (block $block17 (result i32) | |
481 | (i32.const 40) | |
482 | ) | |
483 | ) | |
484 | ) | |
485 | (drop | |
486 | (select | |
487 | (block $block18 (result i32) | |
488 | (drop | |
489 | (i32.const 10) | |
490 | ) | |
491 | (i32.const 20) | |
492 | ) | |
493 | (block $block19 (result i32) | |
494 | (i32.const 30) | |
495 | ) | |
496 | (block $block20 (result i32) | |
497 | (i32.const 40) | |
498 | ) | |
499 | ) | |
500 | ) | |
501 | (drop | |
502 | (select | |
503 | (block $block21 (result i32) | |
504 | (unreachable) | |
505 | (i32.const 20) | |
506 | ) | |
507 | (block $block22 (result i32) | |
508 | (drop | |
509 | (i32.const 30) | |
510 | ) | |
511 | (i32.const 40) | |
512 | ) | |
513 | (block $block23 (result i32) | |
514 | (drop | |
515 | (i32.const 50) | |
516 | ) | |
517 | (i32.const 60) | |
518 | ) | |
519 | ) | |
520 | ) | |
521 | (drop | |
522 | (select | |
523 | (block $block24 (result i32) | |
524 | (drop | |
525 | (i32.const 10) | |
526 | ) | |
527 | (unreachable) | |
528 | ) | |
529 | (block $block25 (result i32) | |
530 | (drop | |
531 | (i32.const 30) | |
532 | ) | |
533 | (i32.const 40) | |
534 | ) | |
535 | (block $block26 (result i32) | |
536 | (drop | |
537 | (i32.const 50) | |
538 | ) | |
539 | (i32.const 60) | |
540 | ) | |
541 | ) | |
542 | ) | |
543 | (drop | |
544 | (select | |
545 | (block $block27 (result i32) | |
546 | (drop | |
547 | (i32.const 10) | |
548 | ) | |
549 | (i32.const 20) | |
550 | ) | |
551 | (block $block28 (result i32) | |
552 | (unreachable) | |
553 | (i32.const 40) | |
554 | ) | |
555 | (block $block29 (result i32) | |
556 | (drop | |
557 | (i32.const 50) | |
558 | ) | |
559 | (i32.const 60) | |
560 | ) | |
561 | ) | |
562 | ) | |
563 | (drop | |
564 | (select | |
565 | (block $block30 (result i32) | |
566 | (drop | |
567 | (i32.const 10) | |
568 | ) | |
569 | (i32.const 20) | |
570 | ) | |
571 | (block $block31 (result i32) | |
572 | (drop | |
573 | (i32.const 30) | |
574 | ) | |
575 | (unreachable) | |
576 | ) | |
577 | (block $block32 (result i32) | |
578 | (drop | |
579 | (i32.const 50) | |
580 | ) | |
581 | (i32.const 60) | |
582 | ) | |
583 | ) | |
584 | ) | |
585 | (drop | |
586 | (select | |
587 | (block $block33 (result i32) | |
588 | (drop | |
589 | (i32.const 10) | |
590 | ) | |
591 | (i32.const 20) | |
592 | ) | |
593 | (block $block34 (result i32) | |
594 | (drop | |
595 | (i32.const 30) | |
596 | ) | |
597 | (i32.const 40) | |
598 | ) | |
599 | (block $block35 (result i32) | |
600 | (unreachable) | |
601 | (i32.const 60) | |
602 | ) | |
603 | ) | |
604 | ) | |
605 | (drop | |
606 | (select | |
607 | (block $block36 (result i32) | |
608 | (drop | |
609 | (i32.const 10) | |
610 | ) | |
611 | (i32.const 20) | |
612 | ) | |
613 | (block $block37 (result i32) | |
614 | (drop | |
615 | (i32.const 30) | |
616 | ) | |
617 | (i32.const 40) | |
618 | ) | |
619 | (block $block38 (result i32) | |
620 | (drop | |
621 | (i32.const 50) | |
622 | ) | |
623 | (unreachable) | |
624 | ) | |
625 | ) | |
626 | ) | |
627 | ) | |
628 | (func $breaks (type $3) | |
629 | (block $out | |
630 | (block | |
631 | (drop | |
632 | (block $block0 (result i32) | |
633 | (drop | |
634 | (i32.const 10) | |
635 | ) | |
636 | (i32.const 20) | |
637 | ) | |
638 | ) | |
639 | (br $out) | |
640 | ) | |
641 | (br_if $out | |
642 | (block $block1 (result i32) | |
643 | (drop | |
644 | (i32.const 10) | |
645 | ) | |
646 | (i32.const 20) | |
647 | ) | |
648 | ) | |
649 | (block | |
650 | (drop | |
651 | (block $block2 (result i32) | |
652 | (drop | |
653 | (i32.const 10) | |
654 | ) | |
655 | (i32.const 20) | |
656 | ) | |
657 | ) | |
658 | (br_if $out | |
659 | (block $block3 (result i32) | |
660 | (drop | |
661 | (i32.const 30) | |
662 | ) | |
663 | (i32.const 40) | |
664 | ) | |
665 | ) | |
666 | ) | |
667 | (br_table $out $out | |
668 | (block $block4 (result i32) | |
669 | (drop | |
670 | (i32.const 10) | |
671 | ) | |
672 | (i32.const 20) | |
673 | ) | |
674 | ) | |
675 | (drop | |
676 | (block $out2 (result i32) | |
677 | (br_table $out2 $out2 | |
678 | (block $block5 (result i32) | |
679 | (drop | |
680 | (i32.const 10) | |
681 | ) | |
682 | (i32.const 20) | |
683 | ) | |
684 | (block $block6 (result i32) | |
685 | (drop | |
686 | (i32.const 30) | |
687 | ) | |
688 | (i32.const 40) | |
689 | ) | |
690 | ) | |
691 | ) | |
692 | ) | |
693 | (unreachable) | |
694 | ) | |
695 | ) | |
696 | (func $calls (type $3) | |
697 | (call $call-i | |
698 | (block $block0 (result i32) | |
699 | (i32.const 10) | |
700 | ) | |
701 | ) | |
702 | (call $call-i | |
703 | (block $block1 (result i32) | |
704 | (drop | |
705 | (i32.const 10) | |
706 | ) | |
707 | (i32.const 20) | |
708 | ) | |
709 | ) | |
710 | (call $call-i | |
711 | (block $block2 (result i32) | |
712 | (drop | |
713 | (i32.const 10) | |
714 | ) | |
715 | (drop | |
716 | (i32.const 20) | |
717 | ) | |
718 | (i32.const 30) | |
719 | ) | |
720 | ) | |
721 | (call $call-ii | |
722 | (block $block3 (result i32) | |
723 | (drop | |
724 | (i32.const 10) | |
725 | ) | |
726 | (i32.const 20) | |
727 | ) | |
728 | (block $block4 (result i32) | |
729 | (drop | |
730 | (i32.const 30) | |
731 | ) | |
732 | (i32.const 40) | |
733 | ) | |
734 | ) | |
735 | (call $call-ii | |
736 | (block $block5 (result i32) | |
737 | (unreachable) | |
738 | (i32.const 10) | |
739 | ) | |
740 | (block $block6 (result i32) | |
741 | (drop | |
742 | (i32.const 20) | |
743 | ) | |
744 | (i32.const 30) | |
745 | ) | |
746 | ) | |
747 | (call $call-ii | |
748 | (block $block7 (result i32) | |
749 | (drop | |
750 | (i32.const 10) | |
751 | ) | |
752 | (unreachable) | |
753 | ) | |
754 | (block $block8 (result i32) | |
755 | (drop | |
756 | (i32.const 20) | |
757 | ) | |
758 | (i32.const 30) | |
759 | ) | |
760 | ) | |
761 | (call $call-ii | |
762 | (block $block9 (result i32) | |
763 | (drop | |
764 | (i32.const 10) | |
765 | ) | |
766 | (i32.const 20) | |
767 | ) | |
768 | (block $block10 (result i32) | |
769 | (unreachable) | |
770 | (i32.const 30) | |
771 | ) | |
772 | ) | |
773 | (call $call-ii | |
774 | (block $block11 (result i32) | |
775 | (drop | |
776 | (i32.const 10) | |
777 | ) | |
778 | (i32.const 20) | |
779 | ) | |
780 | (block $block12 (result i32) | |
781 | (drop | |
782 | (i32.const 30) | |
783 | ) | |
784 | (unreachable) | |
785 | ) | |
786 | ) | |
787 | (call $call-iii | |
788 | (block $block13 (result i32) | |
789 | (drop | |
790 | (i32.const 10) | |
791 | ) | |
792 | (i32.const 20) | |
793 | ) | |
794 | (block $block14 (result i32) | |
795 | (drop | |
796 | (i32.const 30) | |
797 | ) | |
798 | (i32.const 40) | |
799 | ) | |
800 | (block $block15 (result i32) | |
801 | (drop | |
802 | (i32.const 50) | |
803 | ) | |
804 | (i32.const 60) | |
805 | ) | |
806 | ) | |
807 | (call $call-iii | |
808 | (block $block16 (result i32) | |
809 | (drop | |
810 | (i32.const 10) | |
811 | ) | |
812 | (i32.const 20) | |
813 | ) | |
814 | (i32.const 30) | |
815 | (block $block17 (result i32) | |
816 | (drop | |
817 | (i32.const 40) | |
818 | ) | |
819 | (i32.const 50) | |
820 | ) | |
821 | ) | |
822 | (call_indirect (type $ii) | |
823 | (block $block18 (result i32) | |
824 | (drop | |
825 | (i32.const 10) | |
826 | ) | |
827 | (i32.const 20) | |
828 | ) | |
829 | (block $block19 (result i32) | |
830 | (drop | |
831 | (i32.const 30) | |
832 | ) | |
833 | (i32.const 40) | |
834 | ) | |
835 | (block $block20 (result i32) | |
836 | (drop | |
837 | (i32.const 50) | |
838 | ) | |
839 | (i32.const 60) | |
840 | ) | |
841 | ) | |
842 | (call_indirect (type $ii) | |
843 | (unreachable) | |
844 | (block $block21 (result i32) | |
845 | (drop | |
846 | (i32.const 30) | |
847 | ) | |
848 | (i32.const 40) | |
849 | ) | |
850 | (block $block22 (result i32) | |
851 | (drop | |
852 | (i32.const 50) | |
853 | ) | |
854 | (i32.const 60) | |
855 | ) | |
856 | ) | |
857 | (call_indirect (type $ii) | |
858 | (block $block21 (result i32) | |
859 | (drop | |
860 | (i32.const 31) | |
861 | ) | |
862 | (i32.const 41) | |
863 | ) | |
864 | (unreachable) | |
865 | (block $block22 (result i32) | |
866 | (drop | |
867 | (i32.const 51) | |
868 | ) | |
869 | (i32.const 61) | |
870 | ) | |
871 | ) | |
872 | (call_indirect (type $ii) | |
873 | (block $block21 (result i32) | |
874 | (drop | |
875 | (i32.const 32) | |
876 | ) | |
877 | (i32.const 42) | |
878 | ) | |
879 | (block $block22 (result i32) | |
880 | (drop | |
881 | (i32.const 52) | |
882 | ) | |
883 | (i32.const 62) | |
884 | ) | |
885 | (unreachable) | |
886 | ) | |
887 | ) | |
888 | (func $atomics (type $3) | |
889 | (drop | |
890 | (i32.atomic.rmw.cmpxchg ;; mergeblock logic should be same as select | |
891 | (block $block0 (result i32) | |
892 | (drop | |
893 | (i32.const 10) | |
894 | ) | |
895 | (i32.const 20) | |
896 | ) | |
897 | (block $block1 (result i32) | |
898 | (drop | |
899 | (i32.const 30) | |
900 | ) | |
901 | (i32.const 40) | |
902 | ) | |
903 | (block $block2 (result i32) | |
904 | (drop | |
905 | (i32.const 50) | |
906 | ) | |
907 | (i32.const 60) | |
908 | ) | |
909 | ) | |
910 | ) | |
911 | (drop | |
912 | (i32.atomic.rmw.add ;; atomicrmw is like a binary | |
913 | (block $block1 (result i32) | |
914 | (drop | |
915 | (i32.const 10) | |
916 | ) | |
917 | (i32.const 20) | |
918 | ) | |
919 | (i32.const 30) | |
920 | ) | |
921 | ) | |
922 | ) | |
923 | (func $mix-select (param $x i32) | |
924 | (drop | |
925 | (select | |
926 | (get_local $x) | |
927 | (get_local $x) | |
928 | (block (result i32) | |
929 | (set_local $x ;; cannot be moved before the gets | |
930 | (i32.const 1) | |
931 | ) | |
932 | (i32.const 2) | |
933 | ) | |
934 | ) | |
935 | ) | |
936 | ) | |
937 | (func $block-type-change (type $3) | |
938 | (local $0 f64) | |
939 | (local $1 f64) | |
940 | (if | |
941 | (f64.gt | |
942 | (get_local $0) | |
943 | (block $block0 (result f64) | |
944 | (nop) | |
945 | (get_local $1) | |
946 | ) | |
947 | ) | |
948 | (nop) | |
949 | ) | |
950 | ) | |
951 | (func $do-reorder (param $x i32) | |
952 | (local $y i32) | |
953 | (if (i32.const 1) | |
954 | (block | |
955 | (set_local $x | |
956 | (i32.le_u | |
957 | (get_local $x) | |
958 | (block (result i32) | |
959 | (set_local $y (i32.const 5)) | |
960 | (i32.const 10) | |
961 | ) | |
962 | ) | |
963 | ) | |
964 | ) | |
965 | ) | |
966 | ) | |
967 | (func $do-not-reorder (param $x i32) | |
968 | (local $y i32) | |
969 | (if (i32.const 1) | |
970 | (block | |
971 | (set_local $x | |
972 | (i32.le_u | |
973 | (get_local $y) | |
974 | (block (result i32) | |
975 | (set_local $y (i32.const 5)) | |
976 | (i32.const 10) | |
977 | ) | |
978 | ) | |
979 | ) | |
980 | ) | |
981 | ) | |
982 | ) | |
983 | (func $return-different-type (result i32) | |
984 | (drop | |
985 | (f64.abs | |
986 | (return | |
987 | (block (result i32) ;; when we flip the block out, it should have an ok type for the (dead) f64 op | |
988 | (drop (i32.const 2)) | |
989 | (i32.const 1) | |
990 | ) | |
991 | ) | |
992 | ) | |
993 | ) | |
994 | (unreachable) | |
995 | ) | |
996 | ||
997 | (func $drop-unreachable (result i32) | |
998 | (local $0 i32) | |
999 | (block $label$1 (result i32) | |
1000 | (drop | |
1001 | (block (result i32) | |
1002 | (unreachable) | |
1003 | ) | |
1004 | ) | |
1005 | (unreachable) | |
1006 | ) | |
1007 | ) | |
1008 | (func $concrete_finale_in_unreachable (result f64) | |
1009 | (block $label$0 (result f64) | |
1010 | (drop | |
1011 | (block (result f64) | |
1012 | (unreachable) | |
1013 | (f64.const 6.322092475576799e-96) | |
1014 | ) | |
1015 | ) | |
1016 | (f64.const -1) | |
1017 | ) | |
1018 | ) | |
1019 | (func $dont-move-unreachable | |
1020 | (loop $label$0 | |
1021 | (drop | |
1022 | (block $label$3 (result i32) | |
1023 | (br $label$0) | |
1024 | (i32.const 1) | |
1025 | ) | |
1026 | ) | |
1027 | ) | |
1028 | ) | |
1029 | (func $dont-move-unreachable-last | |
1030 | (loop $label$0 | |
1031 | (drop | |
1032 | (block $label$3 (result i32) | |
1033 | (call $dont-move-unreachable-last) | |
1034 | (br $label$0) | |
1035 | ) | |
1036 | ) | |
1037 | ) | |
1038 | ) | |
1039 | (func $move-around-unreachable-in-middle | |
1040 | (loop $label$0 | |
1041 | (drop | |
1042 | (block $label$2 (result i32) | |
1043 | (block $block2 | |
1044 | (nop) | |
1045 | ) | |
1046 | (block $label$3 (result i32) | |
1047 | (drop | |
1048 | (br_if $label$3 | |
1049 | (br $label$0) | |
1050 | (i32.const 0) | |
1051 | ) | |
1052 | ) | |
1053 | (i32.const 1) | |
1054 | ) | |
1055 | ) | |
1056 | ) | |
1057 | ) | |
1058 | ) | |
1059 | (func $drop-unreachable-block-with-concrete-final | |
1060 | (drop | |
1061 | (block (result i32) | |
1062 | (drop | |
1063 | (block | |
1064 | (drop | |
1065 | (return) | |
1066 | ) | |
1067 | ) | |
1068 | ) | |
1069 | (i32.const -452) | |
1070 | ) | |
1071 | ) | |
1072 | ) | |
1073 | (func $merging-with-unreachable-in-middle (result i32) | |
1074 | (block $label$1 (result i32) | |
1075 | (block (result i32) | |
1076 | (return | |
1077 | (i32.const 21536) | |
1078 | ) | |
1079 | (block $label$15 | |
1080 | (br $label$15) | |
1081 | ) | |
1082 | (i32.const 19299) | |
1083 | ) | |
1084 | ) | |
1085 | ) | |
1086 | (func $remove-br-after-unreachable | |
1087 | (block $label$9 | |
1088 | (drop | |
1089 | (block | |
1090 | (block | |
1091 | (return) | |
1092 | (br $label$9) ;; removing this leads to the block becoming unreachable | |
1093 | ) | |
1094 | ) | |
1095 | ) | |
1096 | ) | |
1097 | ) | |
1098 | ) | |
1099 |