(module (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))) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$jdi (func (param f64 i32) (result i64))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$d (func (result f64))) (import "env" "_emscripten_autodebug_i32" (func $_emscripten_autodebug_i32 (param i32 i32) (result i32))) (import "env" "get" (func $get (result i32))) (import "env" "set" (func $set (param i32))) (memory $0 10) (func $nothing-to-do (; 3 ;) (type $2) (local $0 i32) (nop) ) (func $merge (; 4 ;) (type $2) (local $0 i32) (nop) ) (func $leave-type (; 5 ;) (type $2) (local $0 i32) (local $1 f32) (nop) ) (func $leave-interfere (; 6 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (local.set $1 (i32.const 0) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $almost-interfere (; 7 ;) (type $2) (local $0 i32) (local.set $0 (i32.const 0) ) (drop (local.get $0) ) (local.set $0 (i32.const 0) ) (drop (local.get $0) ) ) (func $redundant-copy (; 8 ;) (type $2) (local $0 i32) (local.set $0 (i32.const 0) ) (nop) (drop (local.get $0) ) ) (func $ineffective-store (; 9 ;) (type $2) (local $0 i32) (drop (i32.const 0) ) (local.set $0 (i32.const 0) ) (drop (local.get $0) ) ) (func $block (; 10 ;) (type $2) (local $0 i32) (block $block0 (local.set $0 (i32.const 0) ) ) (drop (local.get $0) ) ) (func $see-both-sides (; 11 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (block $block0 (local.set $1 (i32.const 0) ) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $see-br-and-ignore-dead (; 12 ;) (type $2) (local $0 i32) (local.set $0 (i32.const 0) ) (block $block (br $block) (drop (i32.const 0) ) (drop (i32.const 0) ) (drop (i32.const -1) ) ) (drop (local.get $0) ) ) (func $see-block-body (; 13 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (block $block (local.set $1 (i32.const 0) ) (drop (local.get $1) ) (br $block) ) (drop (local.get $0) ) ) (func $zero-init (; 14 ;) (type $2) (local $0 i32) (local $1 i32) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $multi (; 15 ;) (type $2) (local $0 i32) (local $1 i32) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $if-else (; 16 ;) (type $2) (local $0 i32) (local $1 i32) (if (i32.const 0) (drop (local.get $0) ) (drop (local.get $1) ) ) ) (func $if-else-parallel (; 17 ;) (type $2) (local $0 i32) (if (i32.const 0) (block $block1 (local.set $0 (i32.const 0) ) (drop (local.get $0) ) ) (block $block3 (local.set $0 (i32.const 1) ) (drop (local.get $0) ) ) ) ) (func $if-else-after (; 18 ;) (type $2) (local $0 i32) (local $1 i32) (if (i32.const 0) (local.set $0 (i32.const 0) ) (local.set $1 (i32.const 1) ) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $if-else-through (; 19 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (local.set $1 (i32.const 1) ) (if (i32.const 0) (drop (i32.const 1) ) (drop (i32.const 2) ) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $if-through (; 20 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (local.set $1 (i32.const 1) ) (if (i32.const 0) (drop (i32.const 1) ) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $if-through2 (; 21 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (if (i32.const 0) (local.set $1 (i32.const 1) ) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $if-through3 (; 22 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (if (i32.const 0) (block $block1 (drop (local.get $0) ) (drop (local.get $1) ) ) ) ) (func $if2 (; 23 ;) (type $2) (local $0 i32) (local $1 i32) (if (local.tee $0 (i32.const 0) ) (block $block1 (drop (local.get $0) ) (drop (local.get $1) ) ) ) ) (func $if3 (; 24 ;) (type $2) (local $0 i32) (local $1 i32) (if (i32.const 0) (block $block1 (local.set $0 (i32.const 0) ) (drop (local.get $0) ) ) ) (drop (local.get $1) ) ) (func $if4 (; 25 ;) (type $2) (local $0 i32) (if (i32.const 0) (block $block1 (local.set $0 (i32.const 0) ) (drop (local.get $0) ) (local.set $0 (i32.const 1) ) ) ) (drop (local.get $0) ) ) (func $if5 (; 26 ;) (type $2) (local $0 i32) (local $1 i32) (if (i32.const 0) (block $block1 (drop (local.get $0) ) (local.set $1 (i32.const 1) ) ) ) (drop (local.get $1) ) ) (func $loop (; 27 ;) (type $2) (local $0 i32) (local $1 i32) (loop $in (drop (local.get $0) ) (local.set $0 (i32.const 0) ) (drop (local.get $1) ) (br $in) ) ) (func $interfere-in-dead (; 28 ;) (type $2) (local $0 i32) (block $block (br $block) (drop (i32.const 0) ) (drop (i32.const 0) ) ) ) (func $interfere-in-dead2 (; 29 ;) (type $2) (local $0 i32) (block $block (unreachable) (drop (i32.const 0) ) (drop (i32.const 0) ) ) ) (func $interfere-in-dead3 (; 30 ;) (type $2) (local $0 i32) (block $block (return) (drop (i32.const 0) ) (drop (i32.const 0) ) ) ) (func $params (; 31 ;) (type $3) (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) (drop (local.get $2) ) (drop (local.get $3) ) (drop (local.get $4) ) ) (func $interfere-in-dead4 (; 32 ;) (type $2) (local $0 i32) (local $1 i32) (block $block (br_if $block (i32.const 0) ) (drop (local.get $0) ) (drop (local.get $1) ) ) ) (func $switch (; 33 ;) (type $2) (local $0 i32) (local $1 i32) (local $2 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 (i32.const 0) ) ) (drop (local.get $0) ) ) (drop (local.get $1) ) ) (drop (local.get $2) ) ) (func $greedy-can-be-happy (; 34 ;) (type $2) (local $0 i32) (local $1 i32) (if (i32.const 0) (if (i32.const 1) (if (i32.const 2) (block $block3 (local.set $0 (i32.const 100) ) (local.set $1 (i32.const 101) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (block $block5 (local.set $0 (i32.const 102) ) (local.set $1 (i32.const 103) ) (drop (local.get $0) ) (drop (local.get $1) ) ) ) (if (i32.const 3) (block $block8 (local.set $0 (i32.const 104) ) (local.set $1 (i32.const 105) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (block $block10 (local.set $0 (i32.const 106) ) (local.set $1 (i32.const 107) ) (drop (local.get $0) ) (drop (local.get $1) ) ) ) ) (if (i32.const 4) (block $block13 (local.set $0 (i32.const 108) ) (local.set $1 (i32.const 109) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (block $block15 (local.set $0 (i32.const 110) ) (local.set $1 (i32.const 111) ) (drop (local.get $0) ) (drop (local.get $1) ) ) ) ) ) (func $greedy-can-be-sad (; 35 ;) (type $2) (local $0 i32) (local $1 i32) (local $2 i32) (if (i32.const 0) (if (i32.const 1) (if (i32.const 2) (block $block3 (local.set $0 (i32.const 100) ) (local.set $1 (i32.const 101) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (block $block5 (local.set $0 (i32.const 102) ) (local.set $2 (i32.const 103) ) (drop (local.get $0) ) (drop (local.get $2) ) ) ) (if (i32.const 3) (block $block8 (local.set $1 (i32.const 104) ) (local.set $0 (i32.const 105) ) (drop (local.get $1) ) (drop (local.get $0) ) ) (block $block10 (local.set $1 (i32.const 106) ) (local.set $2 (i32.const 107) ) (drop (local.get $1) ) (drop (local.get $2) ) ) ) ) (if (i32.const 4) (block $block13 (local.set $2 (i32.const 108) ) (local.set $0 (i32.const 109) ) (drop (local.get $2) ) (drop (local.get $0) ) ) (block $block15 (local.set $2 (i32.const 110) ) (local.set $1 (i32.const 111) ) (drop (local.get $2) ) (drop (local.get $1) ) ) ) ) ) (func $_memcpy (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (if (i32.ge_s (local.get $2) (i32.const 4096) ) (drop (local.get $0) ) ) (local.set $3 (local.get $0) ) (if (i32.eq (i32.and (local.get $0) (i32.const 3) ) (i32.and (local.get $1) (i32.const 3) ) ) (block $block2 (block $while-out$0 (loop $while-in$1 (if (i32.eqz (i32.and (local.get $0) (i32.const 3) ) ) (br $while-out$0) ) (block $block4 (if (i32.eqz (local.get $2) ) (return (local.get $3) ) ) (i32.store8 (local.get $0) (i32.load8_s (local.get $1) ) ) (local.set $0 (i32.add (local.get $0) (i32.const 1) ) ) (local.set $1 (i32.add (local.get $1) (i32.const 1) ) ) (local.set $2 (i32.sub (local.get $2) (i32.const 1) ) ) ) (br $while-in$1) ) ) (block $while-out$2 (loop $while-in$3 (if (i32.eqz (i32.ge_s (local.get $2) (i32.const 4) ) ) (br $while-out$2) ) (block $block7 (i32.store (local.get $0) (i32.load (local.get $1) ) ) (local.set $0 (i32.add (local.get $0) (i32.const 4) ) ) (local.set $1 (i32.add (local.get $1) (i32.const 4) ) ) (local.set $2 (i32.sub (local.get $2) (i32.const 4) ) ) ) (br $while-in$3) ) ) ) ) (block $while-out$4 (loop $while-in$5 (if (i32.eqz (i32.gt_s (local.get $2) (i32.const 0) ) ) (br $while-out$4) ) (block $block9 (i32.store8 (local.get $0) (i32.load8_s (local.get $1) ) ) (local.set $0 (i32.add (local.get $0) (i32.const 1) ) ) (local.set $1 (i32.add (local.get $1) (i32.const 1) ) ) (local.set $2 (i32.sub (local.get $2) (i32.const 1) ) ) ) (br $while-in$5) ) ) (return (local.get $3) ) ) (func $this-is-effective-i-tell-you (; 37 ;) (type $4) (param $0 i32) (if (i32.const -1) (block $block1 (if (i32.const 0) (nop) ) (local.set $0 (i32.const 1) ) ) (nop) ) (drop (local.get $0) ) ) (func $prefer-remove-copies1 (; 38 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (nop) (local.set $1 (i32.const 1) ) (drop (local.get $0) ) (drop (local.get $1) ) ) (func $prefer-remove-copies2 (; 39 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 0) ) (nop) (local.set $1 (i32.const 1) ) (drop (local.get $1) ) (drop (local.get $0) ) ) (func $in-unreachable (; 40 ;) (type $2) (local $0 i32) (block $x (return) (drop (i32.const 1) ) (drop (i32.const 0) ) (drop (i32.const 0) ) ) (block $y (unreachable) (drop (i32.const 1) ) (drop (i32.const 0) ) (drop (i32.const 0) ) ) (block $z (br $z) (drop (i32.const 1) ) (drop (i32.const 0) ) (drop (i32.const 0) ) ) (block $z14 (br_table $z14 $z14 (i32.const 100) ) (drop (i32.const 1) ) (drop (i32.const 0) ) (drop (i32.const 0) ) ) ) (func $nop-in-unreachable (; 41 ;) (type $2) (local $0 i32) (block $block (unreachable) (i32.store (i32.const 0) (i32.const 0) ) ) ) (func $loop-backedge (; 42 ;) (type $2) (local $0 i32) (local $1 i32) (local.set $0 (i32.const 2) ) (block $out (loop $while-in7 (local.set $1 (i32.const 0) ) (call $set (local.get $1) ) (local.set $0 (i32.add (local.get $0) (i32.const 1) ) ) (if (call $get) (local.set $1 (local.get $0) ) ) (br_if $out (local.get $1) ) (local.set $0 (i32.const 100) ) (nop) (br $while-in7) ) ) ) (func $if-copy1 (; 43 ;) (type $2) (local $0 i32) (local $1 i32) (loop $top (local.set $0 (if (result i32) (i32.const 1) (local.get $0) (local.get $1) ) ) (drop (local.get $0) ) (drop (local.get $1) ) (br $top) ) ) (func $if-copy2 (; 44 ;) (type $2) (local $0 i32) (local $1 i32) (loop $top (local.set $1 (if (result i32) (i32.const 1) (local.get $0) (local.get $1) ) ) (drop (local.get $1) ) (drop (local.get $0) ) (br $top) ) ) (func $if-copy3 (; 45 ;) (type $2) (local $0 i32) (local $1 i32) (loop $top (local.set $0 (if (result i32) (i32.const 1) (unreachable) (local.get $0) ) ) (drop (local.get $0) ) (drop (local.get $1) ) (br $top) ) ) (func $if-copy4 (; 46 ;) (type $2) (local $0 i32) (local $1 i32) (loop $top (local.set $1 (if (result i32) (i32.const 1) (unreachable) (local.get $0) ) ) (drop (local.get $1) ) (drop (local.get $0) ) (br $top) ) ) (func $if-copy-tee (; 47 ;) (type $2) (local $0 i32) (local $1 i32) (loop $top (drop (local.tee $0 (if (result i32) (i32.const 1) (local.get $0) (i32.const 2) ) ) ) (drop (local.get $0) ) (drop (local.get $1) ) (br $top) ) ) (func $tee_br (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (block $b (return (br $b) ) ) (i32.const 1) ) (func $unused-tee-with-child-if-no-else (; 49 ;) (type $4) (param $0 i32) (loop $label$0 (drop (if (br $label$0) (nop) ) ) ) ) (func $tee_if_with_unreachable_else (; 50 ;) (type $FUNCSIG$jdi) (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 (; 51 ;) (type $FUNCSIG$jdi) (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 (; 52 ;) (type $2) (local $0 i32) (nop) (if (i32.const 1) (drop (i32.const 1) ) ) (nop) (nop) ) (func $pick-2 (; 53 ;) (type $2) (local $0 i32) (nop) (if (i32.const 1) (drop (i32.const 1) ) ) (nop) (nop) ) (func $many (; 54 ;) (type $2) (local $0 i32) (nop) (nop) (nop) (nop) (if (i32.const 1) (drop (i32.const 1) ) ) (nop) (if (i32.const 1) (drop (i32.const 1) ) ) (nop) (nop) (nop) (local.set $0 (i32.const 2) ) (nop) (if (i32.const 1) (drop (i32.const 1) ) ) (nop) (nop) (nop) (drop (i32.const 2) ) (nop) ) (func $loop-copies (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (loop $loop (local.set $0 (local.get $1) ) (local.set $1 (local.get $0) ) (br_if $loop (local.get $0) ) ) ) (func $proper-type (; 56 ;) (type $FUNCSIG$d) (result f64) (local $0 f64) (local $1 i32) (drop (select (i32.const 0) (i32.const 1) (local.get $1) ) ) (local.get $0) ) (func $reuse-param (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (i32.add (local.tee $0 (i32.xor (i32.shr_s (i32.shl (local.get $0) (i32.const 16) ) (i32.const 16) ) (i32.shr_s (i32.shl (local.get $1) (i32.const 16) ) (i32.const 16) ) ) ) (local.get $0) ) ) )