| (module |
| (memory 10) |
| (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) |
| (type $FUNCSIG$iii (func (param i32 i32) (result i32))) |
| (type $2 (func)) |
| (type $3 (func (param i32 f32))) |
| (type $4 (func (param i32))) |
| (import $_emscripten_autodebug_i32 "env" "_emscripten_autodebug_i32" (param i32 i32) (result i32)) |
| (import $get "env" "get" (result i32)) |
| (import $set "env" "set" (param i32)) |
| (func $nothing-to-do (type $2) |
| (local $x i32) |
| (nop) |
| ) |
| (func $merge (type $2) |
| (local $x i32) |
| (local $y i32) |
| (nop) |
| ) |
| (func $leave-type (type $2) |
| (local $x i32) |
| (local $y f32) |
| (nop) |
| ) |
| (func $leave-interfere (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $y |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $almost-interfere (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $redundant-copy (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $y |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $ineffective-store (type $2) |
| (local $x i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (func $block (type $2) |
| (local $x i32) |
| (block $block0 |
| (local.set $x |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (func $see-both-sides (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (block $block0 |
| (local.set $y |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $see-br-and-ignore-dead (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (block $block |
| (br $block) |
| (local.set $y |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (local.set $x |
| (i32.const -1) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (func $see-block-body (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (block $block |
| (local.set $y |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (br $block) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (func $zero-init (type $2) |
| (local $x i32) |
| (local $y i32) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $multi (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (drop |
| (local.get $y) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| ) |
| (func $if-else (type $2) |
| (local $x i32) |
| (local $y i32) |
| (if |
| (i32.const 0) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| (func $if-else-parallel (type $2) |
| (local $x i32) |
| (local $y i32) |
| (if |
| (i32.const 0) |
| (block $block1 |
| (local.set $x |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (block $block3 |
| (local.set $y |
| (i32.const 1) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| ) |
| (func $if-else-after (type $2) |
| (local $x i32) |
| (local $y i32) |
| (if |
| (i32.const 0) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $y |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $if-else-through (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $y |
| (i32.const 1) |
| ) |
| (if |
| (i32.const 0) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $if-through (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $y |
| (i32.const 1) |
| ) |
| (if |
| (i32.const 0) |
| (drop |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $if-through2 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 0) |
| (local.set $y |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $if-through3 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 0) |
| (block $block1 |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| ) |
| (func $if2 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (if |
| (local.tee $x |
| (i32.const 0) |
| ) |
| (block $block1 |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| ) |
| (func $if3 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (if |
| (i32.const 0) |
| (block $block1 |
| (local.set $x |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $if4 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (if |
| (i32.const 0) |
| (block $block1 |
| (local.set $x |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $if5 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (if |
| (i32.const 0) |
| (block $block1 |
| (drop |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (func $loop (type $2) |
| (local $x i32) |
| (local $y i32) |
| (loop $in |
| (drop |
| (local.get $x) |
| ) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (br $in) |
| ) |
| ) |
| (func $interfere-in-dead (type $2) |
| (local $x i32) |
| (local $y i32) |
| (block $block |
| (br $block) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| (func $interfere-in-dead2 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (block $block |
| (unreachable) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| (func $interfere-in-dead3 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (block $block |
| (return) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| (func $params (type $3) (param $p i32) (param $q f32) |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (local $w i32) |
| (drop |
| (local.get $y) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| (drop |
| (local.get $w) |
| ) |
| ) |
| (func $interfere-in-dead4 (type $2) |
| (local $x i32) |
| (local $y i32) |
| (block $block |
| (br_if $block |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| ) |
| (func $switch (type $2) |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (local $w i32) |
| (block $switch$def |
| (block $switch-case$1 |
| (block $switch-case$2 |
| (br_table $switch-case$1 $switch-case$2 $switch-case$1 $switch-case$1 $switch$def |
| (i32.const 100) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| ) |
| (drop |
| (local.get $w) |
| ) |
| ) |
| (func $greedy-can-be-happy (type $2) |
| (local $x1 i32) |
| (local $x2 i32) |
| (local $x3 i32) |
| (local $y1 i32) |
| (local $y2 i32) |
| (local $y3 i32) |
| (if |
| (i32.const 0) |
| (if |
| (i32.const 1) |
| (if |
| (i32.const 2) |
| (block $block3 |
| (local.set $x1 |
| (i32.const 100) |
| ) |
| (local.set $y2 |
| (i32.const 101) |
| ) |
| (drop |
| (local.get $x1) |
| ) |
| (drop |
| (local.get $y2) |
| ) |
| ) |
| (block $block5 |
| (local.set $x1 |
| (i32.const 102) |
| ) |
| (local.set $y3 |
| (i32.const 103) |
| ) |
| (drop |
| (local.get $x1) |
| ) |
| (drop |
| (local.get $y3) |
| ) |
| ) |
| ) |
| (if |
| (i32.const 3) |
| (block $block8 |
| (local.set $x2 |
| (i32.const 104) |
| ) |
| (local.set $y1 |
| (i32.const 105) |
| ) |
| (drop |
| (local.get $x2) |
| ) |
| (drop |
| (local.get $y1) |
| ) |
| ) |
| (block $block10 |
| (local.set $x2 |
| (i32.const 106) |
| ) |
| (local.set $y3 |
| (i32.const 107) |
| ) |
| (drop |
| (local.get $x2) |
| ) |
| (drop |
| (local.get $y3) |
| ) |
| ) |
| ) |
| ) |
| (if |
| (i32.const 4) |
| (block $block13 |
| (local.set $x3 |
| (i32.const 108) |
| ) |
| (local.set $y1 |
| (i32.const 109) |
| ) |
| (drop |
| (local.get $x3) |
| ) |
| (drop |
| (local.get $y1) |
| ) |
| ) |
| (block $block15 |
| (local.set $x3 |
| (i32.const 110) |
| ) |
| (local.set $y2 |
| (i32.const 111) |
| ) |
| (drop |
| (local.get $x3) |
| ) |
| (drop |
| (local.get $y2) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $greedy-can-be-sad (type $2) |
| (local $x1 i32) |
| (local $y1 i32) |
| (local $x2 i32) |
| (local $y2 i32) |
| (local $x3 i32) |
| (local $y3 i32) |
| (if |
| (i32.const 0) |
| (if |
| (i32.const 1) |
| (if |
| (i32.const 2) |
| (block $block3 |
| (local.set $x1 |
| (i32.const 100) |
| ) |
| (local.set $y2 |
| (i32.const 101) |
| ) |
| (drop |
| (local.get $x1) |
| ) |
| (drop |
| (local.get $y2) |
| ) |
| ) |
| (block $block5 |
| (local.set $x1 |
| (i32.const 102) |
| ) |
| (local.set $y3 |
| (i32.const 103) |
| ) |
| (drop |
| (local.get $x1) |
| ) |
| (drop |
| (local.get $y3) |
| ) |
| ) |
| ) |
| (if |
| (i32.const 3) |
| (block $block8 |
| (local.set $x2 |
| (i32.const 104) |
| ) |
| (local.set $y1 |
| (i32.const 105) |
| ) |
| (drop |
| (local.get $x2) |
| ) |
| (drop |
| (local.get $y1) |
| ) |
| ) |
| (block $block10 |
| (local.set $x2 |
| (i32.const 106) |
| ) |
| (local.set $y3 |
| (i32.const 107) |
| ) |
| (drop |
| (local.get $x2) |
| ) |
| (drop |
| (local.get $y3) |
| ) |
| ) |
| ) |
| ) |
| (if |
| (i32.const 4) |
| (block $block13 |
| (local.set $x3 |
| (i32.const 108) |
| ) |
| (local.set $y1 |
| (i32.const 109) |
| ) |
| (drop |
| (local.get $x3) |
| ) |
| (drop |
| (local.get $y1) |
| ) |
| ) |
| (block $block15 |
| (local.set $x3 |
| (i32.const 110) |
| ) |
| (local.set $y2 |
| (i32.const 111) |
| ) |
| (drop |
| (local.get $x3) |
| ) |
| (drop |
| (local.get $y2) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $_memcpy (type $FUNCSIG$iiii) (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32) |
| (local $i4 i32) |
| (if |
| (i32.ge_s |
| (local.get $i3) |
| (i32.const 4096) |
| ) |
| (drop |
| (local.get $i1) |
| ) |
| ) |
| (local.set $i4 |
| (local.get $i1) |
| ) |
| (if |
| (i32.eq |
| (i32.and |
| (local.get $i1) |
| (i32.const 3) |
| ) |
| (i32.and |
| (local.get $i2) |
| (i32.const 3) |
| ) |
| ) |
| (block $block2 |
| (block $while-out$0 |
| (loop $while-in$1 |
| (if |
| (i32.eqz |
| (i32.and |
| (local.get $i1) |
| (i32.const 3) |
| ) |
| ) |
| (br $while-out$0) |
| ) |
| (block $block4 |
| (if |
| (i32.eqz |
| (local.get $i3) |
| ) |
| (return |
| (local.get $i4) |
| ) |
| ) |
| (i32.store8 |
| (local.get $i1) |
| (i32.load8_s |
| (local.get $i2) |
| ) |
| ) |
| (local.set $i1 |
| (i32.add |
| (local.get $i1) |
| (i32.const 1) |
| ) |
| ) |
| (local.set $i2 |
| (i32.add |
| (local.get $i2) |
| (i32.const 1) |
| ) |
| ) |
| (local.set $i3 |
| (i32.sub |
| (local.get $i3) |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (br $while-in$1) |
| ) |
| ) |
| (block $while-out$2 |
| (loop $while-in$3 |
| (if |
| (i32.eqz |
| (i32.ge_s |
| (local.get $i3) |
| (i32.const 4) |
| ) |
| ) |
| (br $while-out$2) |
| ) |
| (block $block7 |
| (i32.store |
| (local.get $i1) |
| (i32.load |
| (local.get $i2) |
| ) |
| ) |
| (local.set $i1 |
| (i32.add |
| (local.get $i1) |
| (i32.const 4) |
| ) |
| ) |
| (local.set $i2 |
| (i32.add |
| (local.get $i2) |
| (i32.const 4) |
| ) |
| ) |
| (local.set $i3 |
| (i32.sub |
| (local.get $i3) |
| (i32.const 4) |
| ) |
| ) |
| ) |
| (br $while-in$3) |
| ) |
| ) |
| ) |
| ) |
| (block $while-out$4 |
| (loop $while-in$5 |
| (if |
| (i32.eqz |
| (i32.gt_s |
| (local.get $i3) |
| (i32.const 0) |
| ) |
| ) |
| (br $while-out$4) |
| ) |
| (block $block9 |
| (i32.store8 |
| (local.get $i1) |
| (i32.load8_s |
| (local.get $i2) |
| ) |
| ) |
| (local.set $i1 |
| (i32.add |
| (local.get $i1) |
| (i32.const 1) |
| ) |
| ) |
| (local.set $i2 |
| (i32.add |
| (local.get $i2) |
| (i32.const 1) |
| ) |
| ) |
| (local.set $i3 |
| (i32.sub |
| (local.get $i3) |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (br $while-in$5) |
| ) |
| ) |
| (return |
| (local.get $i4) |
| ) |
| ) |
| (func $this-is-effective-i-tell-you (type $4) (param $x i32) |
| (if |
| (i32.const -1) |
| (block $block1 |
| (if |
| (i32.const 0) |
| (nop) |
| ) |
| (local.set $x |
| (i32.const 1) |
| ) |
| ) |
| (nop) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (func $prefer-remove-copies1 (type $2) |
| (local $y i32) |
| (local $z i32) |
| (local $x i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $y |
| (local.get $x) |
| ) |
| (local.set $z |
| (i32.const 1) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| ) |
| (func $prefer-remove-copies2 (type $2) |
| (local $y i32) |
| (local $z i32) |
| (local $x i32) |
| (local.set $x |
| (i32.const 0) |
| ) |
| (local.set $z |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.const 1) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| ) |
| (func $in-unreachable |
| (local $a i32) |
| (block $x |
| (return) |
| (local.set $a (i32.const 1)) |
| (drop (local.get $a)) |
| (local.set $a (local.get $a)) |
| ) |
| (block $y |
| (unreachable) |
| (local.set $a (i32.const 1)) |
| (drop (local.get $a)) |
| (local.set $a (local.get $a)) |
| ) |
| (block $z |
| (br $z) |
| (local.set $a (i32.const 1)) |
| (drop (local.get $a)) |
| (local.set $a (local.get $a)) |
| ) |
| (block $z |
| (br_table $z $z |
| (i32.const 100) |
| ) |
| (local.set $a (i32.const 1)) |
| (drop (local.get $a)) |
| (local.set $a (local.get $a)) |
| ) |
| ) |
| (func $nop-in-unreachable |
| (local $x i32) |
| (block |
| (unreachable) |
| (i32.store |
| (local.get $x) |
| (local.tee $x (i32.const 0)) |
| ) |
| ) |
| ) |
| (func $loop-backedge |
| (local $0 i32) ;; loop phi |
| (local $1 i32) ;; value for next loop iteration |
| (local $2 i32) ;; a local that might be merged with with $1, perhaps making us prefer it to removing a backedge copy |
| (local.set $0 |
| (i32.const 2) |
| ) |
| (block $out |
| (loop $while-in7 |
| (local.set $2 (i32.const 0)) ;; 2 interferes with 0 |
| (call $set (local.get $2)) |
| (local.set $1 |
| (i32.add |
| (local.get $0) |
| (i32.const 1) |
| ) |
| ) |
| (if (call $get) |
| (local.set $2 (local.get $1)) ;; copy for 1/2 |
| ) |
| (br_if $out (local.get $2)) |
| (local.set $1 (i32.const 100)) |
| (local.set $0 (local.get $1)) ;; copy for 1/0, with extra weight should win the tie |
| (br $while-in7) |
| ) |
| ) |
| ) |
| (func $if-copy1 |
| (local $x i32) |
| (local $y i32) |
| (loop $top |
| (local.set $x |
| (if (result i32) |
| (i32.const 1) |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| (drop (local.get $x)) |
| (drop (local.get $y)) |
| (br $top) |
| ) |
| ) |
| (func $if-copy2 |
| (local $x i32) |
| (local $y i32) |
| (loop $top |
| (local.set $x |
| (if (result i32) |
| (i32.const 1) |
| (local.get $y) |
| (local.get $x) |
| ) |
| ) |
| (drop (local.get $x)) |
| (drop (local.get $y)) |
| (br $top) |
| ) |
| ) |
| (func $if-copy3 |
| (local $x i32) |
| (local $y i32) |
| (loop $top |
| (local.set $x |
| (if (result i32) |
| (i32.const 1) |
| (unreachable) |
| (local.get $x) |
| ) |
| ) |
| (drop (local.get $x)) |
| (drop (local.get $y)) |
| (br $top) |
| ) |
| ) |
| (func $if-copy4 |
| (local $x i32) |
| (local $y i32) |
| (loop $top |
| (local.set $x |
| (if (result i32) |
| (i32.const 1) |
| (unreachable) |
| (local.get $y) |
| ) |
| ) |
| (drop (local.get $x)) |
| (drop (local.get $y)) |
| (br $top) |
| ) |
| ) |
| (func $if-copy-tee |
| (local $x i32) |
| (local $y i32) |
| (loop $top |
| (drop |
| (local.tee $x |
| (if (result i32) |
| (i32.const 1) |
| (local.get $x) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (drop (local.get $x)) |
| (drop (local.get $y)) |
| (br $top) |
| ) |
| ) |
| (func $tee_br (param $x i32) (result i32) |
| (block $b |
| (return |
| (local.tee $x |
| (br $b) |
| ) |
| ) |
| ) |
| (i32.const 1) |
| ) |
| (func $unused-tee-with-child-if-no-else (param $0 i32) |
| (loop $label$0 |
| (drop |
| (local.tee $0 |
| (if |
| (br $label$0) |
| (nop) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $tee_if_with_unreachable_else (param $0 f64) (param $1 i32) (result i64) |
| (call $tee_if_with_unreachable_else |
| (local.tee $0 |
| (if (result f64) |
| (local.get $1) |
| (local.get $0) |
| (unreachable) |
| ) |
| ) |
| (f64.lt |
| (f64.const -128) |
| (local.get $0) |
| ) |
| ) |
| ) |
| (func $tee_if_with_unreachable_true (param $0 f64) (param $1 i32) (result i64) |
| (call $tee_if_with_unreachable_else |
| (local.tee $0 |
| (if (result f64) |
| (local.get $1) |
| (unreachable) |
| (local.get $0) |
| ) |
| ) |
| (f64.lt |
| (f64.const -128) |
| (local.get $0) |
| ) |
| ) |
| ) |
| (func $pick |
| (local $x i32) |
| (local $y i32) |
| (local.set $x (local.get $y)) |
| (if (i32.const 1) |
| (local.set $x (i32.const 1)) |
| ) |
| (local.set $x (local.get $y)) |
| (local.set $x (local.get $y)) |
| ) |
| (func $pick-2 |
| (local $x i32) |
| (local $y i32) |
| (local.set $y (local.get $x)) |
| (if (i32.const 1) |
| (local.set $y (i32.const 1)) |
| ) |
| (local.set $y (local.get $x)) |
| (local.set $y (local.get $x)) |
| ) |
| (func $many |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (local $w i32) |
| (local.set $y (local.get $x)) |
| (local.set $z (local.get $y)) |
| (local.set $w (local.get $z)) |
| (local.set $x (local.get $z)) |
| (if (i32.const 1) |
| (local.set $y (i32.const 1)) |
| ) |
| (local.set $x (local.get $z)) |
| (if (i32.const 1) |
| (local.set $y (i32.const 1)) |
| ) |
| (local.set $y (local.get $x)) |
| (local.set $z (local.get $y)) |
| (local.set $w (local.get $z)) |
| (local.set $z (i32.const 2)) |
| (local.set $x (local.get $z)) |
| (if (i32.const 1) |
| (local.set $y (i32.const 1)) |
| ) |
| (local.set $y (local.get $x)) |
| (local.set $z (local.get $y)) |
| (local.set $w (local.get $z)) |
| (local.set $z (i32.const 2)) |
| (local.set $x (local.get $w)) |
| ) |
| (func $loop-copies (param $x i32) (param $y i32) |
| (loop $loop |
| (local.set $x (local.get $y)) |
| (local.set $y (local.get $x)) |
| (br_if $loop (local.get $x)) |
| ) |
| ) |
| (func $proper-type (result f64) |
| (local $var$0 i32) |
| (local $var$2 f64) |
| (local.set $var$0 |
| (select |
| (i32.const 0) |
| (i32.const 1) |
| (local.get $var$0) |
| ) |
| ) |
| (local.tee $var$2 ;; the locals will be reordered, this should be the f64 |
| (local.get $var$2) |
| ) |
| ) |
| (func $reuse-param (param $x i32) (param $y i32) (result i32) |
| (local $temp i32) |
| (i32.add |
| (local.tee $temp |
| (i32.xor |
| (i32.shr_s |
| (i32.shl |
| (local.get $x) ;; $x and $temp do not interfere |
| (i32.const 16) |
| ) |
| (i32.const 16) |
| ) |
| (i32.shr_s |
| (i32.shl |
| (local.get $y) |
| (i32.const 16) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| ) |
| (local.get $temp) |
| ) |
| ) |
| ) |