(module
 (type $none_=>_none (func))
 (type $i32_=>_none (func (param i32)))
 (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
 (type $f64_i32_=>_i64 (func (param f64 i32) (result i64)))
 (type $i32_i32_=>_none (func (param i32 i32)))
 (type $i32_f32_=>_none (func (param i32 f32)))
 (type $none_=>_i32 (func (result i32)))
 (type $i32_=>_i32 (func (param i32) (result i32)))
 (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
 (type $none_=>_f64 (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 ;)
  (local $0 i32)
  (nop)
 )
 (func $merge (; 4 ;)
  (local $0 i32)
  (nop)
 )
 (func $leave-type (; 5 ;)
  (local $0 i32)
  (local $1 f32)
  (nop)
 )
 (func $leave-interfere (; 6 ;)
  (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 ;)
  (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 ;)
  (local $0 i32)
  (local.set $0
   (i32.const 0)
  )
  (nop)
  (drop
   (local.get $0)
  )
 )
 (func $ineffective-store (; 9 ;)
  (local $0 i32)
  (drop
   (i32.const 0)
  )
  (local.set $0
   (i32.const 0)
  )
  (drop
   (local.get $0)
  )
 )
 (func $block (; 10 ;)
  (local $0 i32)
  (block $block0
   (local.set $0
    (i32.const 0)
   )
  )
  (drop
   (local.get $0)
  )
 )
 (func $see-both-sides (; 11 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (local $0 i32)
  (local $1 i32)
  (drop
   (local.get $0)
  )
  (drop
   (local.get $1)
  )
 )
 (func $multi (; 15 ;)
  (local $0 i32)
  (local $1 i32)
  (drop
   (local.get $0)
  )
  (drop
   (local.get $1)
  )
 )
 (func $if-else (; 16 ;)
  (local $0 i32)
  (local $1 i32)
  (if
   (i32.const 0)
   (drop
    (local.get $0)
   )
   (drop
    (local.get $1)
   )
  )
 )
 (func $if-else-parallel (; 17 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (local $0 i32)
  (block $block
   (br $block)
   (drop
    (i32.const 0)
   )
   (drop
    (i32.const 0)
   )
  )
 )
 (func $interfere-in-dead2 (; 29 ;)
  (local $0 i32)
  (block $block
   (unreachable)
   (drop
    (i32.const 0)
   )
   (drop
    (i32.const 0)
   )
  )
 )
 (func $interfere-in-dead3 (; 30 ;)
  (local $0 i32)
  (block $block
   (return)
   (drop
    (i32.const 0)
   )
   (drop
    (i32.const 0)
   )
  )
 )
 (func $params (; 31 ;) (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;) (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 ;) (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (local $0 i32)
  (block $block
   (unreachable)
   (i32.store
    (i32.const 0)
    (i32.const 0)
   )
  )
 )
 (func $loop-backedge (; 42 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;)
  (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 ;) (param $0 i32) (result i32)
  (block $b
   (return
    (br $b)
   )
  )
  (i32.const 1)
 )
 (func $unused-tee-with-child-if-no-else (; 49 ;) (param $0 i32)
  (loop $label$0
   (drop
    (if
     (br $label$0)
     (nop)
    )
   )
  )
 )
 (func $tee_if_with_unreachable_else (; 50 ;) (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 ;) (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 ;)
  (local $0 i32)
  (nop)
  (if
   (i32.const 1)
   (drop
    (i32.const 1)
   )
  )
  (nop)
  (nop)
 )
 (func $pick-2 (; 53 ;)
  (local $0 i32)
  (nop)
  (if
   (i32.const 1)
   (drop
    (i32.const 1)
   )
  )
  (nop)
  (nop)
 )
 (func $many (; 54 ;)
  (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 ;) (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 ;) (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 ;) (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)
  )
 )
)
