(module
 (type $0 (func))
 (type $3 (func (result i32)))
 (type $1 (func (param i32)))
 (type $2 (func (result f32)))
 (type $4 (func (param i32 f64 i32 i32)))
 (type $none_=>_f64 (func (result f64)))
 (import "env" "int" (func $int (result i32)))
 (global $Int i32 (i32.const 0))
 (memory $0 256 256)
 (func $b
  (nop)
 )
 (func $l
  (local $x i32)
  (local $y i32)
  (local.set $x
   (local.get $x)
  )
  (local.set $x
   (local.get $x)
  )
  (local.set $x
   (local.get $y)
  )
 )
 (func $loopy (param $0 i32)
  (nop)
 )
 (func $unary (result f32)
  (f32.abs
   (unreachable)
  )
 )
 (func $binary (result f32)
  (drop
   (f32.add
    (unreachable)
    (f32.const 3)
   )
  )
 )
 (func $select (result i32)
  (drop
   (select
    (unreachable)
    (i32.const 4)
    (i32.const 5)
   )
  )
 )
 (func $block-to-one
  (unreachable)
 )
 (func $recurse
  (nop)
 )
 (func $func-block
  (nop)
 )
 (func $Gu (param $b i32) (param $e f64) (param $l i32) (param $d i32)
  (if
   (if (result i32)
    (local.get $d)
    (f64.ne
     (f64.promote_f32
      (f32.load
       (local.tee $l
        (i32.add
         (local.get $b)
         (i32.const 60)
        )
       )
      )
     )
     (local.get $e)
    )
    (i32.const 0)
   )
   (unreachable)
  )
 )
 (func $if-drop (result i32)
  (block $out
   (if
    (call $if-drop)
    (drop
     (call $int)
    )
    (br $out)
   )
   (if
    (call $if-drop)
    (br $out)
    (drop
     (call $int)
    )
   )
  )
  (i32.const 1)
 )
 (func $drop-silly
  (drop
   (call $int)
  )
  (drop
   (call $int)
  )
  (drop
   (call $int)
  )
  (drop
   (i32.add
    (call $int)
    (call $int)
   )
  )
 )
 (func $drop-get-global
  (call $drop-get-global)
 )
 (func $relooperJumpThreading1
  (local $$vararg_ptr5 i32)
  (local $$11 i32)
  (nop)
 )
 (func $relooperJumpThreading2
  (nop)
 )
 (func $relooperJumpThreading3
  (nop)
 )
 (func $if2drops (result i32)
  (drop
   (if (result i32)
    (call $if2drops)
    (call $if2drops)
    (call $if2drops)
   )
  )
  (i32.const 2)
 )
 (func $if2drops-different (result i32)
  (if
   (call $if2drops)
   (drop
    (call $if2drops)
   )
   (drop
    (call $unary)
   )
  )
  (i32.const 2)
 )
 (func $if-const (param $x i32)
  (call $if-const
   (i32.const 3)
  )
  (call $if-const
   (i32.const 5)
  )
  (call $if-const
   (i32.const 7)
  )
 )
 (func $drop-if-both-unreachable (param $0 i32)
  (block $out
   (drop
    (if (result i32)
     (local.get $0)
     (br $out)
     (br $out)
    )
   )
  )
  (drop
   (if (result i32)
    (local.get $0)
    (unreachable)
    (unreachable)
   )
  )
 )
 (func $if-1-block (param $x i32)
  (block $out
   (if
    (local.get $x)
    (block $block9
     (local.set $x
      (local.get $x)
     )
     (br $out)
    )
   )
  )
 )
 (func $block-resize-br-gone
  (block $out
   (block $in
    (call $block-resize-br-gone)
    (br $in)
   )
   (return)
  )
 )
 (func $block-unreachable-but-last-element-concrete
  (local $2 i32)
  (nop)
 )
 (func $a
  (block $block
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (f64.div
    (f64.const -nan:0xfffffffffa361)
    (loop $label$1
     (br $label$1)
    )
   )
  )
 )
 (func $leave-block-even-if-br-not-taken (result f64)
  (block $label$0 (result f64)
   (f64.store align=1
    (i32.const 879179022)
    (br_if $label$0
     (loop $label$9
      (br $label$9)
     )
     (i32.const 677803374)
    )
   )
  )
 )
 (func $executed-if-in-block
  (unreachable)
 )
 (func $executed-if-in-block2
  (unreachable)
 )
 (func $executed-if-in-block3
  (block $label$0
   (br $label$0)
  )
  (unreachable)
 )
 (func $load-may-have-side-effects (result i32)
  (i64.ge_s
   (block $block (result i64)
    (drop
     (i64.load32_s
      (i32.const 678585719)
     )
    )
    (i64.const 2912825531628789796)
   )
   (i64.const 0)
  )
 )
 (func $unary-binary-may-trap
  (drop
   (i64.trunc_f32_u
    (f32.const 70847791997969805621592064)
   )
  )
 )
 (func $unreachable-if-with-nop-arm-that-leaves-a-concrete-value-if-nop-is-removed
  (block $label$0
   (loop $label$1
    (drop
     (br_if $label$0
      (loop $label$9
       (br $label$9)
      )
     )
    )
   )
  )
 )
 (func $if-arm-vanishes (result i32)
  (block $label$0 (result i32)
   (br $label$0
    (i32.const 1)
   )
  )
 )
 (func $if-arm-vanishes-2 (result i32)
  (block $label$0 (result i32)
   (br $label$0
    (i32.const 1)
   )
  )
 )
 (func $nop-if-type-changes
  (local $0 i32)
  (nop)
 )
)
(module
 (type $0 (func (param i64)))
 (type $1 (func (param f32 i32) (result i32)))
 (func $0 (param $0 i64)
  (nop)
 )
 (func $1 (param $0 f32) (param $1 i32) (result i32)
  (drop
   (block $label$2 (result i64)
    (call $0
     (br_if $label$2
      (i64.const -137438953472)
      (i32.const 1)
     )
    )
    (unreachable)
   )
  )
  (unreachable)
 )
)
(module
 (type $i32_=>_i32 (func (param i32) (result i32)))
 (type $i32_i32_i32_=>_none (func (param i32 i32 i32)))
 (global $global$1 (mut i32) (i32.const 0))
 (memory $0 1 1)
 (export "compress" (func $3))
 (func $_deflate (param $0 i32) (result i32)
  (call $_deflate
   (local.get $0)
  )
 )
 (func $_deflateInit2_ (param $0 i32) (result i32)
  (call $_deflateInit2_
   (local.get $0)
  )
 )
 (func $_deflateEnd (param $0 i32) (result i32)
  (call $_deflateEnd
   (local.get $0)
  )
 )
 (func $3 (param $0 i32) (param $1 i32) (param $2 i32)
  (local $3 i32)
  (local.set $3
   (global.get $global$1)
  )
  (global.set $global$1
   (i32.sub
    (global.get $global$1)
    (i32.const -64)
   )
  )
  (i32.store
   (local.get $3)
   (local.get $2)
  )
  (i32.store offset=4
   (local.get $3)
   (i32.const 100000)
  )
  (i32.store offset=12
   (local.get $3)
   (local.get $0)
  )
  (i32.store offset=16
   (local.get $3)
   (i32.load
    (local.get $1)
   )
  )
  (i32.store offset=32
   (local.get $3)
   (i32.const 0)
  )
  (i32.store offset=36
   (local.get $3)
   (i32.const 0)
  )
  (i32.store offset=40
   (local.get $3)
   (i32.const 0)
  )
  (if
   (call $_deflateInit2_
    (local.get $3)
   )
   (block $block
    (global.set $global$1
     (local.get $3)
    )
    (return)
   )
  )
  (drop
   (if (result i32)
    (i32.eq
     (local.tee $0
      (call $_deflate
       (local.get $3)
      )
     )
     (i32.const 1)
    )
    (block $block1 (result i32)
     (i32.store
      (local.get $1)
      (i32.load offset=20
       (local.get $3)
      )
     )
     (local.set $0
      (call $_deflateEnd
       (local.get $3)
      )
     )
     (global.set $global$1
      (local.get $3)
     )
     (i32.const 0)
    )
    (block $block2 (result i32)
     (drop
      (call $_deflateEnd
       (local.get $3)
      )
     )
     (global.set $global$1
      (local.get $3)
     )
     (i32.const 0)
    )
   )
  )
 )
)
(module
 (type $none_=>_none (func))
 (func $foo
  (nop)
 )
)
(module
 (type $none_=>_none (func))
 (global $global$0 (mut i32) (i32.const 10))
 (func $1
  (nop)
 )
)
