1;; copied from a historical cranelift-wasm test and provided here as proof that 2;; this still compiles on various platforms and such 3 4(module 5 (type $0 (;0;) (func (param i32 i32 i32) (result i32))) 6 (type $1 (;1;) (func (param i32 i32) (result i32))) 7 (type $2 (;2;) (func (param i32))) 8 (type $3 (;3;) (func (param i32) (result i32))) 9 (type $4 (;4;) (func (param i32 i32))) 10 (type $5 (;5;) (func (param i64 i32) (result i32))) 11 (type $6 (;6;) (func (param i32) (result i64))) 12 (type $7 (;7;) (func)) 13 (type $8 (;8;) (func (param i32 i32))) 14 (type $9 (;9;) (func (param i32 i32 i32) (result i32))) 15 (func $0 (;0;) (type $7) 16 (local $0 i32) (local $1 i32) 17 i32.const 1 18 local.set $0 19 block $label$1 ;; label = @1 20 block $label$2 ;; label = @2 21 block $label$3 ;; label = @3 22 i32.const 1049232 23 i32.load 24 i32.const 1 25 i32.eq 26 if ;; label = @4 27 block ;; label = @5 28 i32.const 1049236 29 i32.const 1049236 30 i32.load 31 i32.const 1 32 i32.add 33 local.tee $0 34 i32.store 35 local.get $0 36 i32.const 3 37 i32.lt_u 38 br_if 2 (;@3;) 39 br 3 (;@2;) 40 end 41 end 42 i32.const 1049232 43 i64.const 4294967297 44 i64.store 45 end 46 i32.const 1049240 47 i32.load 48 local.tee $1 49 i32.const -1 50 i32.le_s 51 br_if 0 (;@2;) 52 i32.const 1049240 53 local.get $1 54 i32.store 55 local.get $0 56 i32.const 2 57 i32.lt_u 58 br_if 1 (;@1;) 59 end 60 unreachable 61 end 62 unreachable 63 ) 64 (func $1 (;1;) (type $2) (param $0 i32) 65 (local $1 i32) 66 global.get $global$0 67 i32.const 16 68 i32.sub 69 local.tee $1 70 global.set $global$0 71 local.get $0 72 i32.load offset=8 73 i32.eqz 74 if ;; label = @1 75 block ;; label = @2 76 i32.const 1049172 77 call $2 78 unreachable 79 end 80 end 81 local.get $1 82 local.get $0 83 i32.const 20 84 i32.add 85 i64.load align=4 86 i64.store offset=8 87 local.get $1 88 local.get $0 89 i64.load offset=12 align=4 90 i64.store 91 call $0 92 unreachable 93 ) 94 (func $2 (;2;) (type $2) (param $0 i32) 95 (local $1 i32) (local $2 i64) (local $3 i64) (local $4 i64) 96 global.get $global$0 97 i32.const 48 98 i32.sub 99 local.tee $1 100 global.set $global$0 101 local.get $0 102 i64.load offset=8 align=4 103 local.set $2 104 local.get $0 105 i64.load offset=16 align=4 106 local.set $3 107 local.get $0 108 i64.load align=4 109 local.set $4 110 local.get $1 111 i32.const 20 112 i32.add 113 i32.const 0 114 i32.store 115 local.get $1 116 local.get $4 117 i64.store offset=24 118 local.get $1 119 i32.const 1048656 120 i32.store offset=16 121 local.get $1 122 i64.const 1 123 i64.store offset=4 align=4 124 local.get $1 125 local.get $1 126 i32.const 24 127 i32.add 128 i32.store 129 local.get $1 130 local.get $3 131 i64.store offset=40 132 local.get $1 133 local.get $2 134 i64.store offset=32 135 local.get $1 136 local.get $1 137 i32.const 32 138 i32.add 139 call $5 140 unreachable 141 ) 142 (func $3 (;3;) (type $8) (param $0 i32) (param $1 i32) 143 (local $2 i32) 144 global.get $global$0 145 i32.const 48 146 i32.sub 147 local.tee $2 148 global.set $global$0 149 local.get $2 150 i32.const 16 151 i32.store offset=4 152 local.get $2 153 local.get $1 154 i32.store 155 local.get $2 156 i32.const 44 157 i32.add 158 i32.const 1 159 i32.store 160 local.get $2 161 i32.const 28 162 i32.add 163 i32.const 2 164 i32.store 165 local.get $2 166 i32.const 1 167 i32.store offset=36 168 local.get $2 169 i64.const 2 170 i64.store offset=12 align=4 171 local.get $2 172 i32.const 1049140 173 i32.store offset=8 174 local.get $2 175 local.get $2 176 i32.store offset=40 177 local.get $2 178 local.get $2 179 i32.const 4 180 i32.add 181 i32.store offset=32 182 local.get $2 183 local.get $2 184 i32.const 32 185 i32.add 186 i32.store offset=24 187 local.get $2 188 i32.const 8 189 i32.add 190 local.get $0 191 call $5 192 unreachable 193 ) 194 (func $4 (;4;) (type $1) (param $0 i32) (param $1 i32) (result i32) 195 local.get $0 196 i64.load32_u 197 local.get $1 198 call $6 199 ) 200 (func $5 (;5;) (type $4) (param $0 i32) (param $1 i32) 201 (local $2 i32) (local $3 i64) 202 global.get $global$0 203 i32.const 32 204 i32.sub 205 local.tee $2 206 global.set $global$0 207 local.get $1 208 i64.load align=4 209 local.set $3 210 local.get $2 211 i32.const 20 212 i32.add 213 local.get $1 214 i64.load offset=8 align=4 215 i64.store align=4 216 local.get $2 217 local.get $3 218 i64.store offset=12 align=4 219 local.get $2 220 local.get $0 221 i32.store offset=8 222 local.get $2 223 i32.const 1049156 224 i32.store offset=4 225 local.get $2 226 i32.const 1048656 227 i32.store 228 local.get $2 229 call $1 230 unreachable 231 ) 232 (func $6 (;6;) (type $5) (param $0 i64) (param $1 i32) (result i32) 233 (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i64) (local $14 i32) (local $15 i32) 234 global.get $global$0 235 i32.const 48 236 i32.sub 237 local.tee $6 238 global.set $global$0 239 i32.const 39 240 local.set $2 241 block $label$1 ;; label = @1 242 block $label$2 ;; label = @2 243 local.get $0 244 i64.const 10000 245 i64.ge_u 246 if ;; label = @3 247 block ;; label = @4 248 loop $label$4 ;; label = @5 249 local.get $6 250 i32.const 9 251 i32.add 252 local.get $2 253 i32.add 254 local.tee $3 255 i32.const -4 256 i32.add 257 local.get $0 258 local.get $0 259 i64.const 10000 260 i64.div_u 261 local.tee $13 262 i64.const -10000 263 i64.mul 264 i64.add 265 i32.wrap_i64 266 local.tee $4 267 i32.const 100 268 i32.div_u 269 local.tee $5 270 i32.const 1 271 i32.shl 272 i32.const 1048706 273 i32.add 274 i32.load16_u align=1 275 i32.store16 align=1 276 local.get $3 277 i32.const -2 278 i32.add 279 local.get $5 280 i32.const -100 281 i32.mul 282 local.get $4 283 i32.add 284 i32.const 1 285 i32.shl 286 i32.const 1048706 287 i32.add 288 i32.load16_u align=1 289 i32.store16 align=1 290 local.get $2 291 i32.const -4 292 i32.add 293 local.set $2 294 block (result i32) ;; label = @6 295 local.get $0 296 i64.const 99999999 297 i64.gt_u 298 local.set $14 299 local.get $13 300 local.set $0 301 local.get $14 302 end 303 br_if 0 (;@5;) 304 end 305 local.get $13 306 i32.wrap_i64 307 local.tee $3 308 i32.const 99 309 i32.le_s 310 br_if 3 (;@1;) 311 br 2 (;@2;) 312 end 313 end 314 local.get $0 315 local.tee $13 316 i32.wrap_i64 317 local.tee $3 318 i32.const 99 319 i32.le_s 320 br_if 1 (;@1;) 321 end 322 local.get $2 323 i32.const -2 324 i32.add 325 local.tee $2 326 local.get $6 327 i32.const 9 328 i32.add 329 i32.add 330 local.get $13 331 i32.wrap_i64 332 local.tee $4 333 i32.const 65535 334 i32.and 335 i32.const 100 336 i32.div_u 337 local.tee $3 338 i32.const -100 339 i32.mul 340 local.get $4 341 i32.add 342 i32.const 65535 343 i32.and 344 i32.const 1 345 i32.shl 346 i32.const 1048706 347 i32.add 348 i32.load16_u align=1 349 i32.store16 align=1 350 end 351 block $label$5 ;; label = @1 352 local.get $3 353 i32.const 9 354 i32.le_s 355 if ;; label = @2 356 block ;; label = @3 357 local.get $2 358 i32.const -1 359 i32.add 360 local.tee $2 361 local.get $6 362 i32.const 9 363 i32.add 364 i32.add 365 local.get $3 366 i32.const 48 367 i32.add 368 i32.store8 369 br 2 (;@1;) 370 end 371 end 372 local.get $2 373 i32.const -2 374 i32.add 375 local.tee $2 376 local.get $6 377 i32.const 9 378 i32.add 379 i32.add 380 local.get $3 381 i32.const 1 382 i32.shl 383 i32.const 1048706 384 i32.add 385 i32.load16_u align=1 386 i32.store16 align=1 387 end 388 i32.const 39 389 local.get $2 390 i32.sub 391 local.set $7 392 i32.const 1 393 local.set $3 394 i32.const 43 395 i32.const 1114112 396 local.get $1 397 i32.load 398 local.tee $4 399 i32.const 1 400 i32.and 401 local.tee $11 402 select 403 local.set $8 404 local.get $4 405 i32.const 29 406 i32.shl 407 i32.const 31 408 i32.shr_s 409 i32.const 1048656 410 i32.and 411 local.set $9 412 local.get $6 413 i32.const 9 414 i32.add 415 local.get $2 416 i32.add 417 local.set $10 418 block $label$7 ;; label = @1 419 block $label$8 ;; label = @2 420 block $label$9 ;; label = @3 421 block $label$10 ;; label = @4 422 block $label$11 ;; label = @5 423 block $label$12 ;; label = @6 424 block $label$13 ;; label = @7 425 block $label$14 ;; label = @8 426 block $label$15 (result i32) ;; label = @9 427 block $label$16 ;; label = @10 428 block $label$17 ;; label = @11 429 block $label$18 ;; label = @12 430 block $label$19 ;; label = @13 431 local.get $1 432 i32.load offset=8 433 i32.const 1 434 i32.eq 435 if ;; label = @14 436 block ;; label = @15 437 local.get $1 438 i32.const 12 439 i32.add 440 i32.load 441 local.tee $5 442 local.get $7 443 local.get $11 444 i32.add 445 local.tee $2 446 i32.le_u 447 br_if 2 (;@13;) 448 local.get $4 449 i32.const 8 450 i32.and 451 br_if 3 (;@12;) 452 local.get $5 453 local.get $2 454 i32.sub 455 local.set $4 456 i32.const 1 457 local.get $1 458 i32.load8_u offset=48 459 local.tee $3 460 local.get $3 461 i32.const 3 462 i32.eq 463 select 464 local.tee $3 465 i32.const 3 466 i32.and 467 i32.eqz 468 br_if 4 (;@11;) 469 local.get $3 470 i32.const 2 471 i32.eq 472 br_if 5 (;@10;) 473 i32.const 0 474 local.set $5 475 local.get $4 476 br 6 (;@9;) 477 end 478 end 479 local.get $1 480 local.get $8 481 local.get $9 482 call $9 483 br_if 10 (;@3;) 484 br 11 (;@2;) 485 end 486 local.get $1 487 local.get $8 488 local.get $9 489 call $9 490 br_if 9 (;@3;) 491 br 10 (;@2;) 492 end 493 local.get $1 494 i32.const 1 495 i32.store8 offset=48 496 local.get $1 497 i32.const 48 498 i32.store offset=4 499 local.get $1 500 local.get $8 501 local.get $9 502 call $9 503 br_if 8 (;@3;) 504 local.get $5 505 local.get $2 506 i32.sub 507 local.set $3 508 i32.const 1 509 local.get $1 510 i32.const 48 511 i32.add 512 i32.load8_u 513 local.tee $4 514 local.get $4 515 i32.const 3 516 i32.eq 517 select 518 local.tee $4 519 i32.const 3 520 i32.and 521 i32.eqz 522 br_if 3 (;@8;) 523 local.get $4 524 i32.const 2 525 i32.eq 526 br_if 4 (;@7;) 527 i32.const 0 528 local.set $4 529 br 5 (;@6;) 530 end 531 local.get $4 532 local.set $5 533 i32.const 0 534 br 1 (;@9;) 535 end 536 local.get $4 537 i32.const 1 538 i32.add 539 i32.const 1 540 i32.shr_u 541 local.set $5 542 local.get $4 543 i32.const 1 544 i32.shr_u 545 end 546 local.set $3 547 i32.const -1 548 local.set $2 549 local.get $1 550 i32.const 4 551 i32.add 552 local.set $4 553 local.get $1 554 i32.const 24 555 i32.add 556 local.set $11 557 local.get $1 558 i32.const 28 559 i32.add 560 local.set $12 561 block $label$21 ;; label = @9 562 loop $label$22 ;; label = @10 563 local.get $2 564 i32.const 1 565 i32.add 566 local.tee $2 567 local.get $3 568 i32.ge_u 569 br_if 1 (;@9;) 570 local.get $11 571 i32.load 572 local.get $4 573 i32.load 574 local.get $12 575 i32.load 576 i32.load offset=16 577 call_indirect (type $1) 578 i32.eqz 579 br_if 0 (;@10;) 580 end 581 br 8 (;@1;) 582 end 583 local.get $1 584 i32.const 4 585 i32.add 586 i32.load 587 local.set $4 588 i32.const 1 589 local.set $3 590 local.get $1 591 local.get $8 592 local.get $9 593 call $9 594 br_if 5 (;@3;) 595 local.get $1 596 i32.const 24 597 i32.add 598 local.tee $2 599 i32.load 600 local.get $10 601 local.get $7 602 local.get $1 603 i32.const 28 604 i32.add 605 local.tee $1 606 i32.load 607 i32.load offset=12 608 call_indirect (type $0) 609 br_if 5 (;@3;) 610 local.get $2 611 i32.load 612 local.set $7 613 i32.const -1 614 local.set $2 615 local.get $1 616 i32.load 617 i32.const 16 618 i32.add 619 local.set $1 620 loop $label$23 ;; label = @9 621 local.get $2 622 i32.const 1 623 i32.add 624 local.tee $2 625 local.get $5 626 i32.ge_u 627 br_if 4 (;@5;) 628 local.get $7 629 local.get $4 630 local.get $1 631 i32.load 632 call_indirect (type $1) 633 i32.eqz 634 br_if 0 (;@9;) 635 end 636 br 5 (;@3;) 637 end 638 local.get $3 639 local.set $4 640 i32.const 0 641 local.set $3 642 br 1 (;@6;) 643 end 644 local.get $3 645 i32.const 1 646 i32.add 647 i32.const 1 648 i32.shr_u 649 local.set $4 650 local.get $3 651 i32.const 1 652 i32.shr_u 653 local.set $3 654 end 655 i32.const -1 656 local.set $2 657 local.get $1 658 i32.const 4 659 i32.add 660 local.set $5 661 local.get $1 662 i32.const 24 663 i32.add 664 local.set $8 665 local.get $1 666 i32.const 28 667 i32.add 668 local.set $9 669 block $label$24 ;; label = @6 670 loop $label$25 ;; label = @7 671 local.get $2 672 i32.const 1 673 i32.add 674 local.tee $2 675 local.get $3 676 i32.ge_u 677 br_if 1 (;@6;) 678 local.get $8 679 i32.load 680 local.get $5 681 i32.load 682 local.get $9 683 i32.load 684 i32.load offset=16 685 call_indirect (type $1) 686 i32.eqz 687 br_if 0 (;@7;) 688 end 689 br 5 (;@1;) 690 end 691 local.get $1 692 i32.const 4 693 i32.add 694 i32.load 695 local.set $5 696 i32.const 1 697 local.set $3 698 local.get $1 699 i32.const 24 700 i32.add 701 local.tee $2 702 i32.load 703 local.get $10 704 local.get $7 705 local.get $1 706 i32.const 28 707 i32.add 708 local.tee $1 709 i32.load 710 i32.load offset=12 711 call_indirect (type $0) 712 br_if 2 (;@3;) 713 local.get $2 714 i32.load 715 local.set $7 716 i32.const -1 717 local.set $2 718 local.get $1 719 i32.load 720 i32.const 16 721 i32.add 722 local.set $1 723 loop $label$26 ;; label = @6 724 local.get $2 725 i32.const 1 726 i32.add 727 local.tee $2 728 local.get $4 729 i32.ge_u 730 br_if 2 (;@4;) 731 local.get $7 732 local.get $5 733 local.get $1 734 i32.load 735 call_indirect (type $1) 736 i32.eqz 737 br_if 0 (;@6;) 738 end 739 br 2 (;@3;) 740 end 741 local.get $6 742 i32.const 48 743 i32.add 744 global.set $global$0 745 i32.const 0 746 return 747 end 748 i32.const 0 749 local.set $3 750 end 751 local.get $6 752 i32.const 48 753 i32.add 754 global.set $global$0 755 local.get $3 756 return 757 end 758 block (result i32) ;; label = @2 759 local.get $1 760 i32.load offset=24 761 local.get $10 762 local.get $7 763 local.get $1 764 i32.const 28 765 i32.add 766 i32.load 767 i32.load offset=12 768 call_indirect (type $0) 769 local.set $15 770 local.get $6 771 i32.const 48 772 i32.add 773 global.set $global$0 774 local.get $15 775 end 776 return 777 end 778 local.get $6 779 i32.const 48 780 i32.add 781 global.set $global$0 782 i32.const 1 783 ) 784 (func $7 (;7;) (type $2) (param $0 i32) 785 nop 786 ) 787 (func $8 (;8;) (type $6) (param $0 i32) (result i64) 788 i64.const -2357177763932378009 789 ) 790 (func $9 (;9;) (type $9) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 791 block $label$1 ;; label = @1 792 block $label$2 (result i32) ;; label = @2 793 local.get $1 794 i32.const 1114112 795 i32.ne 796 if ;; label = @3 797 i32.const 1 798 local.get $0 799 i32.load offset=24 800 local.get $1 801 local.get $0 802 i32.const 28 803 i32.add 804 i32.load 805 i32.load offset=16 806 call_indirect (type $1) 807 br_if 1 (;@2;) 808 drop 809 end 810 local.get $2 811 i32.eqz 812 br_if 1 (;@1;) 813 local.get $0 814 i32.load offset=24 815 local.get $2 816 i32.const 0 817 local.get $0 818 i32.const 28 819 i32.add 820 i32.load 821 i32.load offset=12 822 call_indirect (type $0) 823 end 824 return 825 end 826 i32.const 0 827 ) 828 (func $10 (;10;) (type $3) (param $0 i32) (result i32) 829 (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) (local $14 i32) (local $15 i32) (local $16 i32) (local $17 i32) (local $18 i32) (local $19 i32) (local $20 i32) (local $21 i32) (local $22 i32) (local $23 i32) (local $24 i32) (local $25 i32) (local $26 i32) (local $27 i32) (local $28 i32) (local $29 i32) (local $30 i32) (local $31 i32) (local $32 i32) (local $33 i32) (local $34 i32) (local $35 i32) (local $36 i32) (local $37 i32) (local $38 i32) (local $39 i32) (local $40 i32) (local $41 i32) (local $42 i32) (local $43 i32) (local $44 i32) (local $45 i32) (local $46 i32) 830 global.get $global$0 831 i32.const 256 832 i32.sub 833 local.tee $1 834 global.set $global$0 835 local.get $1 836 i64.const 4294967297 837 i64.store offset=56 align=4 838 local.get $1 839 i64.const 4294967297 840 i64.store offset=48 align=4 841 local.get $1 842 i64.const 4294967297 843 i64.store offset=40 align=4 844 local.get $1 845 i64.const 4294967297 846 i64.store offset=32 align=4 847 local.get $1 848 i64.const 4294967297 849 i64.store offset=24 align=4 850 local.get $1 851 i64.const 4294967297 852 i64.store offset=16 align=4 853 local.get $1 854 i64.const 4294967297 855 i64.store offset=8 align=4 856 local.get $1 857 i64.const 4294967297 858 i64.store align=4 859 block $label$1 ;; label = @1 860 local.get $0 861 i32.const 1 862 i32.add 863 local.tee $11 864 i32.const 2 865 i32.ge_u 866 if ;; label = @2 867 block ;; label = @3 868 local.get $1 869 local.set $3 870 i32.const 1 871 local.set $2 872 loop $label$3 ;; label = @4 873 local.get $2 874 i32.const 16 875 i32.ge_u 876 br_if 3 (;@1;) 877 local.get $3 878 i32.const 4 879 i32.add 880 local.tee $4 881 local.get $3 882 i32.load 883 local.get $2 884 i32.mul 885 i32.store 886 local.get $4 887 local.set $3 888 local.get $2 889 i32.const 1 890 i32.add 891 local.tee $4 892 local.set $2 893 local.get $4 894 local.get $11 895 i32.lt_u 896 br_if 0 (;@4;) 897 end 898 end 899 end 900 local.get $0 901 i32.const 16 902 i32.lt_u 903 if ;; label = @2 904 block ;; label = @3 905 i32.const 1 906 local.set $20 907 local.get $1 908 local.get $0 909 i32.const 2 910 i32.shl 911 i32.add 912 i32.load 913 local.tee $9 914 local.set $21 915 local.get $9 916 i32.const 24 917 i32.ge_u 918 if ;; label = @4 919 i32.const 24 920 i32.const 25 921 local.get $9 922 local.get $9 923 i32.const 24 924 i32.div_u 925 local.tee $21 926 i32.const 24 927 i32.mul 928 i32.eq 929 select 930 local.set $20 931 end 932 i32.const 0 933 local.get $0 934 i32.sub 935 local.set $40 936 local.get $1 937 i32.const 196 938 i32.add 939 local.set $12 940 local.get $1 941 i32.const 132 942 i32.add 943 local.set $41 944 local.get $1 945 i32.const 124 946 i32.add 947 local.set $42 948 local.get $1 949 i32.const 68 950 i32.add 951 local.set $11 952 local.get $0 953 i32.const 2 954 i32.lt_u 955 local.set $43 956 loop $label$6 ;; label = @4 957 local.get $1 958 i32.const 120 959 i32.add 960 i64.const 0 961 i64.store 962 local.get $1 963 i32.const 112 964 i32.add 965 i64.const 0 966 i64.store 967 local.get $1 968 i32.const 104 969 i32.add 970 i64.const 0 971 i64.store 972 local.get $1 973 i32.const 96 974 i32.add 975 i64.const 0 976 i64.store 977 local.get $1 978 i32.const 88 979 i32.add 980 i64.const 0 981 i64.store 982 local.get $1 983 i32.const 80 984 i32.add 985 i64.const 0 986 i64.store 987 local.get $1 988 i32.const 72 989 i32.add 990 i64.const 0 991 i64.store 992 local.get $1 993 i64.const 0 994 i64.store offset=64 995 local.get $1 996 i32.const 184 997 i32.add 998 local.tee $26 999 i64.const 0 1000 i64.store 1001 local.get $1 1002 i32.const 176 1003 i32.add 1004 local.tee $27 1005 i64.const 0 1006 i64.store 1007 local.get $1 1008 i32.const 168 1009 i32.add 1010 local.tee $28 1011 i64.const 0 1012 i64.store 1013 local.get $1 1014 i32.const 160 1015 i32.add 1016 local.tee $29 1017 i64.const 0 1018 i64.store 1019 local.get $1 1020 i32.const 152 1021 i32.add 1022 local.tee $30 1023 i64.const 0 1024 i64.store 1025 local.get $1 1026 i32.const 144 1027 i32.add 1028 local.tee $31 1029 i64.const 0 1030 i64.store 1031 local.get $1 1032 i32.const 136 1033 i32.add 1034 local.tee $32 1035 i64.const 0 1036 i64.store 1037 local.get $1 1038 i64.const 0 1039 i64.store offset=128 1040 local.get $1 1041 i32.const 248 1042 i32.add 1043 local.tee $33 1044 i64.const 64424509454 1045 i64.store align=4 1046 local.get $1 1047 i32.const 240 1048 i32.add 1049 local.tee $34 1050 i64.const 55834574860 1051 i64.store align=4 1052 local.get $1 1053 i32.const 232 1054 i32.add 1055 local.tee $35 1056 i64.const 47244640266 1057 i64.store align=4 1058 local.get $1 1059 i32.const 224 1060 i32.add 1061 local.tee $36 1062 i64.const 38654705672 1063 i64.store align=4 1064 local.get $1 1065 i32.const 216 1066 i32.add 1067 local.tee $37 1068 i64.const 30064771078 1069 i64.store align=4 1070 local.get $1 1071 i32.const 208 1072 i32.add 1073 local.tee $38 1074 i64.const 21474836484 1075 i64.store align=4 1076 local.get $1 1077 i32.const 200 1078 i32.add 1079 local.tee $39 1080 i64.const 12884901890 1081 i64.store align=4 1082 local.get $1 1083 i64.const 4294967296 1084 i64.store offset=192 align=4 1085 local.get $13 1086 local.get $21 1087 i32.mul 1088 local.set $7 1089 block $label$7 (result i32) ;; label = @5 1090 block $label$8 ;; label = @6 1091 local.get $43 1092 i32.eqz 1093 if ;; label = @7 1094 block ;; label = @8 1095 local.get $40 1096 local.set $23 1097 local.get $7 1098 local.set $14 1099 local.get $0 1100 local.set $15 1101 i32.const 0 1102 local.set $5 1103 br 2 (;@6;) 1104 end 1105 end 1106 i32.const 0 1107 br 1 (;@5;) 1108 end 1109 i32.const 1 1110 end 1111 local.set $2 1112 loop $label$10 ;; label = @5 1113 block $label$11 ;; label = @6 1114 block $label$12 ;; label = @7 1115 block $label$13 (result i32) ;; label = @8 1116 block $label$14 ;; label = @9 1117 block $label$15 ;; label = @10 1118 block $label$16 ;; label = @11 1119 block $label$17 ;; label = @12 1120 block $label$18 ;; label = @13 1121 block $label$19 ;; label = @14 1122 local.get $2 1123 i32.eqz 1124 if ;; label = @15 1125 block ;; label = @16 1126 local.get $13 1127 i32.const 1 1128 i32.add 1129 local.set $13 1130 local.get $9 1131 local.get $7 1132 local.get $21 1133 i32.add 1134 local.tee $3 1135 local.get $3 1136 local.get $9 1137 i32.gt_u 1138 select 1139 i32.const -1 1140 i32.add 1141 local.set $44 1142 i32.const 0 1143 local.set $24 1144 local.get $1 1145 i32.load offset=192 1146 local.tee $6 1147 i32.const 1 1148 i32.ge_s 1149 br_if 2 (;@14;) 1150 br 3 (;@13;) 1151 end 1152 end 1153 block $label$21 ;; label = @15 1154 block $label$22 ;; label = @16 1155 block $label$23 ;; label = @17 1156 block $label$24 ;; label = @18 1157 block $label$25 ;; label = @19 1158 block $label$26 ;; label = @20 1159 block $label$27 ;; label = @21 1160 block $label$28 ;; label = @22 1161 block $label$29 ;; label = @23 1162 block $label$30 ;; label = @24 1163 block $label$31 ;; label = @25 1164 local.get $5 1165 br_table 0 (;@25;) 1 (;@24;) 2 (;@23;) 1166 end 1167 local.get $15 1168 i32.const -1 1169 i32.add 1170 local.tee $4 1171 i32.const 16 1172 i32.ge_u 1173 br_if 6 (;@18;) 1174 local.get $1 1175 local.get $4 1176 i32.const 2 1177 i32.shl 1178 local.tee $2 1179 i32.add 1180 i32.load 1181 local.tee $3 1182 i32.eqz 1183 br_if 7 (;@17;) 1184 local.get $14 1185 i32.const -2147483648 1186 i32.eq 1187 if ;; label = @25 1188 local.get $3 1189 i32.const -1 1190 i32.eq 1191 br_if 9 (;@16;) 1192 end 1193 local.get $1 1194 i32.const -64 1195 i32.sub 1196 local.get $2 1197 i32.add 1198 local.get $14 1199 local.get $3 1200 i32.div_s 1201 local.tee $16 1202 i32.store 1203 local.get $32 1204 local.get $39 1205 i64.load align=4 1206 i64.store 1207 local.get $31 1208 local.get $38 1209 i64.load align=4 1210 i64.store 1211 local.get $30 1212 local.get $37 1213 i64.load align=4 1214 i64.store 1215 local.get $29 1216 local.get $36 1217 i64.load align=4 1218 i64.store 1219 local.get $28 1220 local.get $35 1221 i64.load align=4 1222 i64.store 1223 local.get $27 1224 local.get $34 1225 i64.load align=4 1226 i64.store 1227 local.get $26 1228 local.get $33 1229 i64.load align=4 1230 i64.store 1231 local.get $1 1232 local.get $1 1233 i64.load offset=192 align=4 1234 i64.store offset=128 1235 local.get $16 1236 local.get $23 1237 i32.add 1238 local.set $45 1239 local.get $14 1240 local.get $3 1241 local.get $16 1242 i32.mul 1243 i32.sub 1244 local.set $14 1245 i32.const 0 1246 local.set $2 1247 local.get $1 1248 i32.const 192 1249 i32.add 1250 local.set $8 1251 loop $label$33 ;; label = @25 1252 block $label$34 ;; label = @26 1253 local.get $2 1254 local.get $16 1255 i32.add 1256 local.tee $3 1257 local.get $4 1258 i32.gt_u 1259 if ;; label = @27 1260 block ;; label = @28 1261 local.get $2 1262 local.get $45 1263 i32.add 1264 local.tee $46 1265 i32.const 15 1266 i32.gt_u 1267 br_if 7 (;@21;) 1268 local.get $3 1269 local.get $15 1270 i32.sub 1271 local.set $3 1272 local.get $2 1273 i32.const 15 1274 i32.le_u 1275 br_if 2 (;@26;) 1276 br 6 (;@22;) 1277 end 1278 end 1279 local.get $3 1280 i32.const 16 1281 i32.ge_u 1282 br_if 6 (;@20;) 1283 local.get $2 1284 i32.const 15 1285 i32.gt_u 1286 br_if 4 (;@22;) 1287 end 1288 local.get $8 1289 local.get $1 1290 i32.const 128 1291 i32.add 1292 local.get $3 1293 i32.const 2 1294 i32.shl 1295 i32.add 1296 i32.load 1297 i32.store 1298 local.get $8 1299 i32.const 4 1300 i32.add 1301 local.set $8 1302 local.get $2 1303 i32.const 1 1304 i32.add 1305 local.tee $2 1306 local.get $15 1307 i32.lt_u 1308 br_if 0 (;@25;) 1309 end 1310 local.get $23 1311 i32.const 1 1312 i32.add 1313 local.set $23 1314 local.get $4 1315 local.tee $15 1316 i32.const 1 1317 i32.gt_u 1318 br_if 9 (;@15;) 1319 i32.const 0 1320 local.set $2 1321 br 19 (;@5;) 1322 end 1323 local.get $26 1324 local.get $33 1325 i64.load align=4 1326 i64.store 1327 local.get $27 1328 local.get $34 1329 i64.load align=4 1330 i64.store 1331 local.get $28 1332 local.get $35 1333 i64.load align=4 1334 i64.store 1335 local.get $29 1336 local.get $36 1337 i64.load align=4 1338 i64.store 1339 local.get $30 1340 local.get $37 1341 i64.load align=4 1342 i64.store 1343 local.get $31 1344 local.get $38 1345 i64.load align=4 1346 i64.store 1347 local.get $32 1348 local.get $39 1349 i64.load align=4 1350 i64.store 1351 local.get $1 1352 local.get $1 1353 i64.load offset=192 align=4 1354 i64.store offset=128 1355 local.get $6 1356 i32.const 15 1357 i32.gt_u 1358 br_if 4 (;@19;) 1359 i32.const 1 1360 local.set $17 1361 local.get $6 1362 local.set $10 1363 i32.const 0 1364 br 15 (;@8;) 1365 end 1366 local.get $7 1367 local.get $44 1368 i32.lt_u 1369 if ;; label = @23 1370 block ;; label = @24 1371 local.get $12 1372 i32.load 1373 local.set $25 1374 local.get $12 1375 local.get $6 1376 i32.store 1377 local.get $1 1378 local.get $25 1379 i32.store offset=192 1380 local.get $11 1381 local.set $18 1382 local.get $1 1383 i32.load offset=68 1384 local.tee $2 1385 i32.const 1 1386 i32.lt_s 1387 br_if 18 (;@6;) 1388 i32.const 1 1389 local.set $19 1390 br 15 (;@9;) 1391 end 1392 end 1393 local.get $22 1394 local.get $24 1395 i32.add 1396 local.set $22 1397 local.get $13 1398 local.get $20 1399 i32.lt_u 1400 br_if 18 (;@4;) 1401 local.get $1 1402 i32.const 256 1403 i32.add 1404 global.set $global$0 1405 local.get $22 1406 return 1407 end 1408 i32.const 1049076 1409 local.get $2 1410 call $3 1411 unreachable 1412 end 1413 i32.const 1049060 1414 local.get $46 1415 call $3 1416 unreachable 1417 end 1418 i32.const 1049044 1419 local.get $2 1420 local.get $16 1421 i32.add 1422 call $3 1423 unreachable 1424 end 1425 local.get $6 1426 local.set $10 1427 br 11 (;@7;) 1428 end 1429 i32.const 1048980 1430 local.get $4 1431 call $3 1432 unreachable 1433 end 1434 i32.const 1048996 1435 call $2 1436 unreachable 1437 end 1438 i32.const 1049020 1439 call $2 1440 unreachable 1441 end 1442 i32.const 0 1443 local.set $5 1444 br 2 (;@12;) 1445 end 1446 i32.const 1 1447 local.set $5 1448 br 2 (;@11;) 1449 end 1450 i32.const 2 1451 local.set $5 1452 br 2 (;@10;) 1453 end 1454 i32.const 1 1455 local.set $2 1456 br 6 (;@5;) 1457 end 1458 i32.const 1 1459 local.set $2 1460 br 5 (;@5;) 1461 end 1462 i32.const 1 1463 local.set $2 1464 br 4 (;@5;) 1465 end 1466 i32.const 1 1467 end 1468 local.set $2 1469 loop $label$37 ;; label = @8 1470 block $label$38 ;; label = @9 1471 block $label$39 ;; label = @10 1472 local.get $2 1473 i32.eqz 1474 if ;; label = @11 1475 block ;; label = @12 1476 local.get $10 1477 local.tee $3 1478 i32.const 2 1479 i32.shl 1480 local.tee $4 1481 local.get $1 1482 i32.const 128 1483 i32.add 1484 i32.add 1485 local.tee $5 1486 i32.load 1487 local.tee $10 1488 if ;; label = @13 1489 block ;; label = @14 1490 local.get $5 1491 local.get $3 1492 i32.store 1493 block $label$42 ;; label = @15 1494 local.get $3 1495 i32.const 3 1496 i32.lt_u 1497 br_if 0 (;@15;) 1498 local.get $3 1499 i32.const -1 1500 i32.add 1501 i32.const 1 1502 i32.shr_u 1503 local.tee $8 1504 i32.eqz 1505 br_if 0 (;@15;) 1506 local.get $4 1507 local.get $42 1508 i32.add 1509 local.set $2 1510 local.get $41 1511 local.set $3 1512 loop $label$43 ;; label = @16 1513 local.get $3 1514 i32.load 1515 local.set $4 1516 local.get $3 1517 local.get $2 1518 i32.load 1519 i32.store 1520 local.get $2 1521 local.get $4 1522 i32.store 1523 local.get $3 1524 i32.const 4 1525 i32.add 1526 local.set $3 1527 local.get $2 1528 i32.const -4 1529 i32.add 1530 local.set $2 1531 local.get $8 1532 i32.const -1 1533 i32.add 1534 local.tee $8 1535 br_if 0 (;@16;) 1536 end 1537 end 1538 local.get $17 1539 i32.const 1 1540 i32.add 1541 local.set $17 1542 local.get $10 1543 i32.const 16 1544 i32.lt_u 1545 br_if 5 (;@9;) 1546 br 7 (;@7;) 1547 end 1548 end 1549 i32.const 0 1550 local.get $17 1551 i32.sub 1552 local.get $17 1553 local.get $7 1554 i32.const 1 1555 i32.and 1556 select 1557 local.get $24 1558 i32.add 1559 local.set $24 1560 i32.const 2 1561 local.set $5 1562 br 2 (;@10;) 1563 end 1564 end 1565 i32.const 0 1566 local.set $2 1567 local.get $18 1568 i32.const 0 1569 i32.store 1570 local.get $1 1571 local.get $6 1572 local.tee $4 1573 i32.store offset=192 1574 local.get $19 1575 i32.const 1 1576 i32.add 1577 local.set $5 1578 local.get $12 1579 local.set $3 1580 block $label$44 ;; label = @11 1581 block $label$45 ;; label = @12 1582 loop $label$46 ;; label = @13 1583 local.get $2 1584 i32.const 2 1585 i32.add 1586 i32.const 16 1587 i32.ge_u 1588 br_if 1 (;@12;) 1589 local.get $3 1590 local.get $3 1591 i32.const 4 1592 i32.add 1593 local.tee $3 1594 i32.load 1595 i32.store 1596 local.get $2 1597 i32.const 1 1598 i32.add 1599 local.tee $2 1600 local.get $19 1601 i32.lt_u 1602 br_if 0 (;@13;) 1603 end 1604 local.get $5 1605 i32.const 16 1606 i32.ge_u 1607 br_if 1 (;@11;) 1608 local.get $5 1609 i32.const 2 1610 i32.shl 1611 local.tee $3 1612 local.get $1 1613 i32.const 192 1614 i32.add 1615 i32.add 1616 local.get $25 1617 i32.store 1618 local.get $1 1619 i32.const -64 1620 i32.sub 1621 local.get $3 1622 i32.add 1623 local.tee $18 1624 i32.load 1625 local.tee $2 1626 local.get $19 1627 i32.le_s 1628 br_if 6 (;@6;) 1629 local.get $12 1630 i32.load 1631 local.set $6 1632 local.get $5 1633 local.set $19 1634 local.get $4 1635 local.set $25 1636 i32.const 1 1637 local.set $2 1638 br 4 (;@8;) 1639 end 1640 i32.const 1049108 1641 local.get $2 1642 i32.const 2 1643 i32.add 1644 call $3 1645 unreachable 1646 end 1647 i32.const 1049124 1648 local.get $5 1649 call $3 1650 unreachable 1651 end 1652 i32.const 1 1653 local.set $2 1654 br 4 (;@5;) 1655 end 1656 i32.const 0 1657 local.set $2 1658 br 0 (;@8;) 1659 end 1660 end 1661 i32.const 1049092 1662 local.get $10 1663 call $3 1664 unreachable 1665 end 1666 local.get $7 1667 i32.const 1 1668 i32.add 1669 local.set $7 1670 local.get $18 1671 local.get $2 1672 i32.const 1 1673 i32.add 1674 i32.store 1675 block $label$47 ;; label = @6 1676 block $label$48 ;; label = @7 1677 local.get $1 1678 i32.load offset=192 1679 local.tee $6 1680 i32.const 1 1681 i32.ge_s 1682 if ;; label = @8 1683 block ;; label = @9 1684 i32.const 1 1685 local.set $5 1686 br 2 (;@7;) 1687 end 1688 end 1689 i32.const 2 1690 local.set $5 1691 br 1 (;@6;) 1692 end 1693 i32.const 1 1694 local.set $2 1695 br 1 (;@5;) 1696 end 1697 i32.const 1 1698 local.set $2 1699 br 0 (;@5;) 1700 end 1701 end 1702 end 1703 end 1704 i32.const 1049212 1705 local.get $0 1706 call $3 1707 unreachable 1708 end 1709 i32.const 1049196 1710 local.get $2 1711 call $3 1712 unreachable 1713 ) 1714 (table $0 (;0;) 4 4 funcref) 1715 (memory $0 (;0;) 17) 1716 (global $global$0 (;0;) (mut i32) i32.const 1048576) 1717 (global $global$1 (;1;) i32 i32.const 1049244) 1718 (global $global$2 (;2;) i32 i32.const 1049244) 1719 (export "memory" (memory $0)) 1720 (export "__heap_base" (global $global$1)) 1721 (export "__data_end" (global $global$2)) 1722 (export "run_fannkuch" (func $10)) 1723 (elem (;0;) (i32.const 1) func $4 $7 $8) 1724 (data (;0;) (i32.const 1048576) "src/lib.rs\00\00\00\00\00\00attempt to divide by zero\00\00\00\00\00\00\00attempt to divide with overflow\00index out of bounds: the len is but the index is 00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899called `Option::unwrap()` on a `None` valuesrc/libcore/option.rssrc/lib.rs") 1725 (data (;1;) (i32.const 1048982) "\10\00\0a\00\00\00%\00\00\00\1d\00\00\00\10\00\10\00\19\00\00\00\00\00\10\00\0a\00\00\00&\00\00\00\15\00\00\000\00\10\00\1f\00\00\00\00\00\10\00\0a\00\00\00&\00\00\00\15\00\00\00\00\00\10\00\0a\00\00\00.\00\00\00\15\00\00\00\00\00\10\00\0a\00\00\000\00\00\00\15\00\00\00\00\00\10\00\0a\00\00\00-\00\00\00\11\00\00\00\00\00\10\00\0a\00\00\00E\00\00\00\17\00\00\00\00\00\10\00\0a\00\00\00q\00\00\00\22\00\00\00\00\00\10\00\0a\00\00\00s\00\00\00\11\00\00\00P\00\10\00 \00\00\00p\00\10\00\12\00\00\00\02\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00J\01\10\00+\00\00\00u\01\10\00\15\00\00\00Y\01\00\00\15\00\00\00\8a\01\10\00\0a\00\00\00\08\00\00\00\09\00\00\00\8a\01\10\00\0a\00\00\00\0a\00\00\00\14") 1726) 1727