| (module | |
| (memory 1 1) | |
| (func $consts | |
| (drop | |
| (i32.load (i32.const 0)) | |
| ) | |
| (drop | |
| (i32.load (i32.const 1)) | |
| ) | |
| (drop | |
| (i32.load (i32.const 1023)) | |
| ) | |
| (drop | |
| (i32.load (i32.const 1024)) | |
| ) | |
| (drop | |
| (i32.load offset=0 (i32.const 0)) | |
| ) | |
| (drop | |
| (i32.load offset=1 (i32.const 0)) | |
| ) | |
| (drop | |
| (i32.load offset=1023 (i32.const 0)) | |
| ) | |
| (drop | |
| (i32.load offset=1024 (i32.const 0)) | |
| ) | |
| (drop | |
| (i32.load offset=512 (i32.const 511)) | |
| ) | |
| (drop | |
| (i32.load offset=512 (i32.const 512)) | |
| ) | |
| (i32.store (i32.const 1) (i32.const 1)) | |
| ) | |
| (func $offsets (param $x i32) | |
| (drop | |
| (i32.load | |
| (i32.add | |
| (local.get $x) | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (i32.add | |
| (local.get $x) | |
| (i32.const 8) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (i32.add | |
| (local.get $x) | |
| (i32.const 1023) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (i32.add | |
| (local.get $x) | |
| (i32.const 1024) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (i32.add | |
| (local.get $x) | |
| (i32.const 2048) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (i32.add | |
| (i32.const 4) | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $load-off-2 (param $0 i32) (result i32) | |
| (i32.store offset=2 | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 3) | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.add | |
| (i32.const 3) | |
| (i32.const 1) | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.add | |
| (local.get $0) | |
| (i32.const 5) | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.add | |
| (i32.const 7) | |
| (local.get $0) | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.add | |
| (i32.const -11) ;; do not fold this! | |
| (local.get $0) | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.add | |
| (local.get $0) | |
| (i32.const -13) ;; do not fold this! | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.add | |
| (i32.const -15) | |
| (i32.const 17) | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.add | |
| (i32.const -21) | |
| (i32.const 19) | |
| ) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.const 23) | |
| (local.get $0) | |
| ) | |
| (i32.store offset=2 | |
| (i32.const -25) | |
| (local.get $0) | |
| ) | |
| (drop | |
| (i32.load offset=2 | |
| (i32.add | |
| (i32.const 2) | |
| (i32.const 4) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=2 | |
| (i32.add | |
| (i32.const 4) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=2 | |
| (i32.add | |
| (local.get $0) | |
| (i32.const 6) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=2 | |
| (i32.const 8) | |
| ) | |
| ) | |
| (i32.load offset=2 | |
| (i32.add | |
| (i32.const 10) | |
| (local.get $0) | |
| ) | |
| ) | |
| ) | |
| (func $offset-constant | |
| (drop | |
| (i32.load offset=10 | |
| (i32.const 0) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=0 | |
| (i32.const 10) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=10 | |
| (i32.const 10) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=512 | |
| (i32.const 512) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=512 | |
| (i32.const 511) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=511 | |
| (i32.const 512) | |
| ) | |
| ) | |
| (drop | |
| (i32.load offset=99999 | |
| (i32.const 512) | |
| ) | |
| ) | |
| ) | |
| (func $offset-propagate-param (param $x i32) | |
| (local $y i32) | |
| (local.set $x | |
| (i32.add | |
| (local.get $y) | |
| (i32.const 1) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| (func $offset-propagate | |
| (local $x i32) | |
| (local $y i32) | |
| (local.set $x | |
| (i32.add | |
| (local.get $y) | |
| (i32.const 1) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| (func $offset-propagate2 | |
| (local $x i32) | |
| (local $y i32) | |
| (local.set $x | |
| (i32.add | |
| (local.get $y) | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| (func $offset-propagate3 | |
| (local $x i32) | |
| (local $y i32) | |
| (local.set $x | |
| (i32.add | |
| (i32.const 1) | |
| (local.get $y) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| (func $offset-propagate4 | |
| (local $x i32) | |
| (local $y i32) | |
| (local.set $y (i32.const -1)) | |
| (local.set $x | |
| (i32.add | |
| (i32.const 1) | |
| (local.get $y) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| (func $offset-propagate5 (param $z i32) | |
| (local $x i32) | |
| (local $y i32) | |
| (if (local.get $z) | |
| (local.set $y (i32.const -1)) | |
| ) | |
| (local.set $x | |
| (i32.add | |
| (i32.const 1) | |
| (local.get $y) | |
| ) | |
| ) | |
| (drop | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| (func $offset-propagate6 (param $z i32) | |
| (local $x i32) | |
| (local $y i32) | |
| (local.set $y (local.get $z)) | |
| (local.set $x | |
| (i32.add | |
| (i32.const 1) | |
| (local.get $y) | |
| ) | |
| ) | |
| (local.set $y (i32.const -2)) | |
| (drop | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| ) | |
| (func $offset-realistic (param $ptr i32) | |
| (local $x i32) | |
| (local $y i32) | |
| (local $z i32) | |
| (local.set $x | |
| (i32.add | |
| (local.get $ptr) | |
| (i32.const 8) | |
| ) | |
| ) | |
| (local.set $y | |
| (i32.add | |
| (local.get $ptr) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.set $z | |
| (i32.add | |
| (local.get $ptr) | |
| (i32.const 24) | |
| ) | |
| ) | |
| (loop $l | |
| (call $offset-realistic | |
| (i32.load | |
| (local.get $x) | |
| ) | |
| ) | |
| (call $offset-realistic | |
| (i32.load | |
| (local.get $y) | |
| ) | |
| ) | |
| (call $offset-realistic | |
| (i32.load | |
| (local.get $y) | |
| ) | |
| ) | |
| (i32.store | |
| (local.get $z) | |
| (i32.add | |
| (i32.load | |
| (local.get $z) | |
| ) | |
| (i32.const 1) | |
| ) | |
| ) | |
| (br_if $l | |
| (i32.load | |
| (local.get $z) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |