(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$vi (func (param i32)))
 (type $7 (func (param i32) (result i32)))
 (type $8 (func (param f64 i32) (result i64)))
 (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)
  (set_local $0
   (i32.const 0)
  )
  (set_local $1
   (i32.const 0)
  )
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $almost-interfere (; 7 ;) (type $2)
  (local $0 i32)
  (set_local $0
   (i32.const 0)
  )
  (drop
   (get_local $0)
  )
  (set_local $0
   (i32.const 0)
  )
  (drop
   (get_local $0)
  )
 )
 (func $redundant-copy (; 8 ;) (type $2)
  (local $0 i32)
  (set_local $0
   (i32.const 0)
  )
  (nop)
  (drop
   (get_local $0)
  )
 )
 (func $ineffective-store (; 9 ;) (type $2)
  (local $0 i32)
  (drop
   (i32.const 0)
  )
  (set_local $0
   (i32.const 0)
  )
  (drop
   (get_local $0)
  )
 )
 (func $block (; 10 ;) (type $2)
  (local $0 i32)
  (block $block0
   (set_local $0
    (i32.const 0)
   )
  )
  (drop
   (get_local $0)
  )
 )
 (func $see-both-sides (; 11 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (block $block0
   (set_local $1
    (i32.const 0)
   )
  )
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $see-br-and-ignore-dead (; 12 ;) (type $2)
  (local $0 i32)
  (set_local $0
   (i32.const 0)
  )
  (block $block
   (br $block)
   (drop
    (i32.const 0)
   )
   (drop
    (i32.const 0)
   )
   (drop
    (i32.const -1)
   )
  )
  (drop
   (get_local $0)
  )
 )
 (func $see-block-body (; 13 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (block $block
   (set_local $1
    (i32.const 0)
   )
   (drop
    (get_local $1)
   )
   (br $block)
  )
  (drop
   (get_local $0)
  )
 )
 (func $zero-init (; 14 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $multi (; 15 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $if-else (; 16 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (if
   (i32.const 0)
   (drop
    (get_local $0)
   )
   (drop
    (get_local $1)
   )
  )
 )
 (func $if-else-parallel (; 17 ;) (type $2)
  (local $0 i32)
  (if
   (i32.const 0)
   (block $block1
    (set_local $0
     (i32.const 0)
    )
    (drop
     (get_local $0)
    )
   )
   (block $block3
    (set_local $0
     (i32.const 1)
    )
    (drop
     (get_local $0)
    )
   )
  )
 )
 (func $if-else-after (; 18 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (if
   (i32.const 0)
   (set_local $0
    (i32.const 0)
   )
   (set_local $1
    (i32.const 1)
   )
  )
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $if-else-through (; 19 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (set_local $1
   (i32.const 1)
  )
  (if
   (i32.const 0)
   (drop
    (i32.const 1)
   )
   (drop
    (i32.const 2)
   )
  )
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $if-through (; 20 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (set_local $1
   (i32.const 1)
  )
  (if
   (i32.const 0)
   (drop
    (i32.const 1)
   )
  )
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $if-through2 (; 21 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (if
   (i32.const 0)
   (set_local $1
    (i32.const 1)
   )
  )
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $if-through3 (; 22 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (if
   (i32.const 0)
   (block $block1
    (drop
     (get_local $0)
    )
    (drop
     (get_local $1)
    )
   )
  )
 )
 (func $if2 (; 23 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (if
   (tee_local $0
    (i32.const 0)
   )
   (block $block1
    (drop
     (get_local $0)
    )
    (drop
     (get_local $1)
    )
   )
  )
 )
 (func $if3 (; 24 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (if
   (i32.const 0)
   (block $block1
    (set_local $0
     (i32.const 0)
    )
    (drop
     (get_local $0)
    )
   )
  )
  (drop
   (get_local $1)
  )
 )
 (func $if4 (; 25 ;) (type $2)
  (local $0 i32)
  (if
   (i32.const 0)
   (block $block1
    (set_local $0
     (i32.const 0)
    )
    (drop
     (get_local $0)
    )
    (set_local $0
     (i32.const 1)
    )
   )
  )
  (drop
   (get_local $0)
  )
 )
 (func $if5 (; 26 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (if
   (i32.const 0)
   (block $block1
    (drop
     (get_local $0)
    )
    (set_local $1
     (i32.const 1)
    )
   )
  )
  (drop
   (get_local $1)
  )
 )
 (func $loop (; 27 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (loop $in
   (drop
    (get_local $0)
   )
   (set_local $0
    (i32.const 0)
   )
   (drop
    (get_local $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
   (get_local $2)
  )
  (drop
   (get_local $3)
  )
  (drop
   (get_local $4)
  )
 )
 (func $interfere-in-dead4 (; 32 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (block $block
   (br_if $block
    (i32.const 0)
   )
   (drop
    (get_local $0)
   )
   (drop
    (get_local $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
     (get_local $0)
    )
   )
   (drop
    (get_local $1)
   )
  )
  (drop
   (get_local $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
      (set_local $0
       (i32.const 100)
      )
      (set_local $1
       (i32.const 101)
      )
      (drop
       (get_local $0)
      )
      (drop
       (get_local $1)
      )
     )
     (block $block5
      (set_local $0
       (i32.const 102)
      )
      (set_local $1
       (i32.const 103)
      )
      (drop
       (get_local $0)
      )
      (drop
       (get_local $1)
      )
     )
    )
    (if
     (i32.const 3)
     (block $block8
      (set_local $0
       (i32.const 104)
      )
      (set_local $1
       (i32.const 105)
      )
      (drop
       (get_local $0)
      )
      (drop
       (get_local $1)
      )
     )
     (block $block10
      (set_local $0
       (i32.const 106)
      )
      (set_local $1
       (i32.const 107)
      )
      (drop
       (get_local $0)
      )
      (drop
       (get_local $1)
      )
     )
    )
   )
   (if
    (i32.const 4)
    (block $block13
     (set_local $0
      (i32.const 108)
     )
     (set_local $1
      (i32.const 109)
     )
     (drop
      (get_local $0)
     )
     (drop
      (get_local $1)
     )
    )
    (block $block15
     (set_local $0
      (i32.const 110)
     )
     (set_local $1
      (i32.const 111)
     )
     (drop
      (get_local $0)
     )
     (drop
      (get_local $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
      (set_local $0
       (i32.const 100)
      )
      (set_local $1
       (i32.const 101)
      )
      (drop
       (get_local $0)
      )
      (drop
       (get_local $1)
      )
     )
     (block $block5
      (set_local $0
       (i32.const 102)
      )
      (set_local $2
       (i32.const 103)
      )
      (drop
       (get_local $0)
      )
      (drop
       (get_local $2)
      )
     )
    )
    (if
     (i32.const 3)
     (block $block8
      (set_local $1
       (i32.const 104)
      )
      (set_local $0
       (i32.const 105)
      )
      (drop
       (get_local $1)
      )
      (drop
       (get_local $0)
      )
     )
     (block $block10
      (set_local $1
       (i32.const 106)
      )
      (set_local $2
       (i32.const 107)
      )
      (drop
       (get_local $1)
      )
      (drop
       (get_local $2)
      )
     )
    )
   )
   (if
    (i32.const 4)
    (block $block13
     (set_local $2
      (i32.const 108)
     )
     (set_local $0
      (i32.const 109)
     )
     (drop
      (get_local $2)
     )
     (drop
      (get_local $0)
     )
    )
    (block $block15
     (set_local $2
      (i32.const 110)
     )
     (set_local $1
      (i32.const 111)
     )
     (drop
      (get_local $2)
     )
     (drop
      (get_local $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
    (get_local $2)
    (i32.const 4096)
   )
   (drop
    (get_local $0)
   )
  )
  (set_local $3
   (get_local $0)
  )
  (if
   (i32.eq
    (i32.and
     (get_local $0)
     (i32.const 3)
    )
    (i32.and
     (get_local $1)
     (i32.const 3)
    )
   )
   (block $block2
    (block $while-out$0
     (loop $while-in$1
      (if
       (i32.eqz
        (i32.and
         (get_local $0)
         (i32.const 3)
        )
       )
       (br $while-out$0)
      )
      (block $block4
       (if
        (i32.eqz
         (get_local $2)
        )
        (return
         (get_local $3)
        )
       )
       (i32.store8
        (get_local $0)
        (i32.load8_s
         (get_local $1)
        )
       )
       (set_local $0
        (i32.add
         (get_local $0)
         (i32.const 1)
        )
       )
       (set_local $1
        (i32.add
         (get_local $1)
         (i32.const 1)
        )
       )
       (set_local $2
        (i32.sub
         (get_local $2)
         (i32.const 1)
        )
       )
      )
      (br $while-in$1)
     )
    )
    (block $while-out$2
     (loop $while-in$3
      (if
       (i32.eqz
        (i32.ge_s
         (get_local $2)
         (i32.const 4)
        )
       )
       (br $while-out$2)
      )
      (block $block7
       (i32.store
        (get_local $0)
        (i32.load
         (get_local $1)
        )
       )
       (set_local $0
        (i32.add
         (get_local $0)
         (i32.const 4)
        )
       )
       (set_local $1
        (i32.add
         (get_local $1)
         (i32.const 4)
        )
       )
       (set_local $2
        (i32.sub
         (get_local $2)
         (i32.const 4)
        )
       )
      )
      (br $while-in$3)
     )
    )
   )
  )
  (block $while-out$4
   (loop $while-in$5
    (if
     (i32.eqz
      (i32.gt_s
       (get_local $2)
       (i32.const 0)
      )
     )
     (br $while-out$4)
    )
    (block $block9
     (i32.store8
      (get_local $0)
      (i32.load8_s
       (get_local $1)
      )
     )
     (set_local $0
      (i32.add
       (get_local $0)
       (i32.const 1)
      )
     )
     (set_local $1
      (i32.add
       (get_local $1)
       (i32.const 1)
      )
     )
     (set_local $2
      (i32.sub
       (get_local $2)
       (i32.const 1)
      )
     )
    )
    (br $while-in$5)
   )
  )
  (return
   (get_local $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)
    )
    (set_local $0
     (i32.const 1)
    )
   )
   (nop)
  )
  (drop
   (get_local $0)
  )
 )
 (func $prefer-remove-copies1 (; 38 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (nop)
  (set_local $1
   (i32.const 1)
  )
  (drop
   (get_local $0)
  )
  (drop
   (get_local $1)
  )
 )
 (func $prefer-remove-copies2 (; 39 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (set_local $0
   (i32.const 0)
  )
  (nop)
  (set_local $1
   (i32.const 1)
  )
  (drop
   (get_local $1)
  )
  (drop
   (get_local $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)
  (set_local $0
   (i32.const 2)
  )
  (block $out
   (loop $while-in7
    (set_local $1
     (i32.const 0)
    )
    (call $set
     (get_local $1)
    )
    (set_local $0
     (i32.add
      (get_local $0)
      (i32.const 1)
     )
    )
    (if
     (call $get)
     (set_local $1
      (get_local $0)
     )
    )
    (br_if $out
     (get_local $1)
    )
    (set_local $0
     (i32.const 100)
    )
    (nop)
    (br $while-in7)
   )
  )
 )
 (func $if-copy1 (; 43 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (loop $top
   (if
    (i32.eqz
     (i32.const 1)
    )
    (set_local $0
     (get_local $1)
    )
   )
   (drop
    (get_local $0)
   )
   (drop
    (get_local $1)
   )
   (br $top)
  )
 )
 (func $if-copy2 (; 44 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (loop $top
   (if
    (i32.const 1)
    (set_local $1
     (get_local $0)
    )
   )
   (drop
    (get_local $1)
   )
   (drop
    (get_local $0)
   )
   (br $top)
  )
 )
 (func $if-copy3 (; 45 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (loop $top
   (if
    (i32.const 1)
    (tee_local $0
     (unreachable)
    )
   )
   (drop
    (get_local $0)
   )
   (drop
    (get_local $1)
   )
   (br $top)
  )
 )
 (func $if-copy4 (; 46 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (loop $top
   (set_local $1
    (if (result i32)
     (i32.const 1)
     (unreachable)
     (get_local $0)
    )
   )
   (drop
    (get_local $1)
   )
   (drop
    (get_local $0)
   )
   (br $top)
  )
 )
 (func $if-copy-tee (; 47 ;) (type $2)
  (local $0 i32)
  (local $1 i32)
  (loop $top
   (drop
    (if (result i32)
     (i32.const 1)
     (get_local $0)
     (tee_local $0
      (i32.const 2)
     )
    )
   )
   (drop
    (get_local $0)
   )
   (drop
    (get_local $1)
   )
   (br $top)
  )
 )
 (func $tee_br (; 48 ;) (type $7) (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 $8) (param $0 f64) (param $1 i32) (result i64)
  (call $tee_if_with_unreachable_else
   (if (result f64)
    (get_local $1)
    (get_local $0)
    (tee_local $0
     (unreachable)
    )
   )
   (f64.lt
    (f64.const -128)
    (get_local $0)
   )
  )
 )
 (func $tee_if_with_unreachable_true (; 51 ;) (type $8) (param $0 f64) (param $1 i32) (result i64)
  (call $tee_if_with_unreachable_else
   (if (result f64)
    (get_local $1)
    (tee_local $0
     (unreachable)
    )
    (get_local $0)
   )
   (f64.lt
    (f64.const -128)
    (get_local $0)
   )
  )
 )
)
