(module
 (type $none_=>_none (func))
 (type $none_=>_i32 (func (result i32)))
 (type $i32_=>_none (func (param i32)))
 (type $i32_=>_i32 (func (param i32) (result i32)))
 (type $none_=>_i64 (func (result i64)))
 (memory $0 1)
 (global $glob (mut i32) (i32.const 1))
 (func $loop1 (; 0 ;)
  (drop
   (i32.const 10)
  )
  (loop $loop
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop2 (; 1 ;)
  (drop
   (i32.const 10)
  )
  (drop
   (i32.const 20)
  )
  (loop $loop
   (nop)
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop3 (; 2 ;)
  (drop
   (i32.const 10)
  )
  (drop
   (i32.const 20)
  )
  (loop $loop
   (nop)
   (call $loop2)
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop4 (; 3 ;)
  (drop
   (i32.load
    (i32.const 1)
   )
  )
  (loop $loop
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop3-4 (; 4 ;)
  (loop $loop
   (drop
    (i32.load
     (i32.const 10)
    )
   )
   (call $loop2)
   (drop
    (i32.load
     (i32.const 20)
    )
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop3-4-b (; 5 ;)
  (drop
   (i32.load
    (i32.const 10)
   )
  )
  (drop
   (i32.load
    (i32.const 20)
   )
  )
  (loop $loop
   (nop)
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop5 (; 6 ;)
  (loop $loop
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop6 (; 7 ;)
  (loop $loop
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (i32.store
    (i32.const 2)
    (i32.const 3)
   )
  )
 )
 (func $loop7 (; 8 ;)
  (loop $loop
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (i32.store
    (i32.const 2)
    (i32.const 3)
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop8 (; 9 ;)
  (loop $loop
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop9 (; 10 ;)
  (loop $loop
   (drop
    (i32.load
     (i32.const 1)
    )
   )
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop10 (; 11 ;)
  (drop
   (i32.load
    (i32.const 1)
   )
  )
  (drop
   (i32.load
    (i32.const 2)
   )
  )
  (loop $loop
   (nop)
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop11 (; 12 ;)
  (local $x i32)
  (local $y i32)
  (loop $loop
   (drop
    (local.get $x)
   )
   (br_if $loop
    (local.tee $x
     (i32.const 2)
    )
   )
  )
 )
 (func $loop12 (; 13 ;)
  (local $x i32)
  (local $y i32)
  (drop
   (local.get $x)
  )
  (loop $loop
   (nop)
   (br_if $loop
    (local.tee $y
     (i32.const 2)
    )
   )
  )
 )
 (func $loop13 (; 14 ;)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.eqz
    (local.get $y)
   )
  )
  (loop $loop
   (nop)
   (call $loop12)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop14 (; 15 ;)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.eqz
    (local.get $y)
   )
  )
  (loop $loop
   (nop)
   (call $loop12)
   (br_if $loop
    (i32.const 1)
   )
   (local.set $y
    (local.get $x)
   )
  )
 )
 (func $loop14-1 (; 16 ;)
  (local $x i32)
  (local $y i32)
  (loop $loop
   (local.set $x
    (i32.eqz
     (local.get $y)
    )
   )
   (call $loop12)
   (local.set $y
    (local.get $x)
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop15 (; 17 ;)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.eqz
    (local.get $y)
   )
  )
  (loop $loop
   (nop)
   (call $loop12)
   (br_if $loop
    (i32.const 1)
   )
   (drop
    (local.get $y)
   )
  )
 )
 (func $loop15-1 (; 18 ;)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.eqz
    (local.get $y)
   )
  )
  (drop
   (local.get $y)
  )
  (loop $loop
   (nop)
   (call $loop12)
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop16 (; 19 ;)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.eqz
    (local.get $y)
   )
  )
  (loop $loop
   (nop)
   (call $loop12)
   (br_if $loop
    (i32.const 1)
   )
   (drop
    (local.get $x)
   )
  )
 )
 (func $loop16-1 (; 20 ;)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.eqz
    (local.get $y)
   )
  )
  (drop
   (local.get $x)
  )
  (loop $loop
   (nop)
   (call $loop12)
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $loop16-2 (; 21 ;)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.const 2)
  )
  (block
   (local.set $x
    (i32.eqz
     (local.get $y)
    )
   )
   (drop
    (local.get $x)
   )
   (loop $loop
    (nop)
    (call $loop12)
    (nop)
    (br_if $loop
     (i32.const 1)
    )
   )
  )
 )
 (func $loop16-3 (; 22 ;)
  (local $x i32)
  (local $y i32)
  (local.set $y
   (i32.const 2)
  )
  (block
   (local.set $x
    (i32.eqz
     (local.get $y)
    )
   )
   (drop
    (local.get $x)
   )
   (loop $loop
    (nop)
    (call $loop12)
    (nop)
    (br_if $loop
     (i32.const 1)
    )
   )
  )
 )
 (func $nop (; 23 ;)
  (loop $loop
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $nested-blocks (; 24 ;)
  (loop $loop
   (block $block
    (nop)
   )
   (block $x
    (nop)
   )
   (block $a
    (block $b
     (block $c
      (nop)
     )
    )
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $nested-unhoistable-blocks (; 25 ;)
  (loop $loop
   (block $block
    (call $nested-unhoistable-blocks)
   )
   (block $x
    (call $nested-unhoistable-blocks)
   )
   (block $a
    (block $b
     (block $c
      (call $nested-unhoistable-blocks)
     )
    )
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $conditional (; 26 ;)
  (if
   (i32.const 0)
   (drop
    (i32.const 10)
   )
  )
  (loop $loop
   (nop)
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $conditional1 (; 27 ;) (result i32)
  (loop $loop
   (if
    (call $conditional1)
    (drop
     (i32.const 10)
    )
   )
   (br_if $loop
    (i32.const 1)
   )
  )
  (unreachable)
 )
 (func $conditional2 (; 28 ;)
  (block $out
   (loop $loop
    (br_if $out
     (i32.const 1)
    )
    (drop
     (i32.const 10)
    )
    (br_if $loop
     (i32.const 1)
    )
   )
  )
 )
 (func $conditional3 (; 29 ;)
  (block $out
   (block
    (drop
     (i32.const 10)
    )
    (loop $loop
     (nop)
     (br_if $out
      (i32.const 1)
     )
     (br_if $loop
      (i32.const 1)
     )
    )
   )
  )
 )
 (func $after (; 30 ;)
  (loop $loop
   (nop)
  )
  (drop
   (i32.const 10)
  )
 )
 (func $loops (; 31 ;)
  (drop
   (i32.const 10)
  )
  (loop $loop2
   (nop)
   (loop $loop1
    (nop)
    (br_if $loop1
     (i32.const 1)
    )
   )
  )
 )
 (func $loops2 (; 32 ;)
  (drop
   (i32.const 10)
  )
  (loop $loop2
   (nop)
   (loop $loop1
    (nop)
    (br_if $loop2
     (i32.const 1)
    )
   )
  )
 )
 (func $fuzz1 (; 33 ;) (result i64)
  (local $var$1 i64)
  (drop
   (block (result i32)
    (local.set $var$1
     (block $label$5 (result i64)
      (local.set $var$1
       (i64.const -29585)
      )
      (i64.const -70)
     )
    )
    (loop $label$4 (result i32)
     (nop)
     (i32.const 1)
    )
   )
  )
  (loop $label$1 (result i64)
   (block $label$2
    (block $label$3
     (nop)
     (br $label$2)
    )
    (unreachable)
   )
   (local.get $var$1)
  )
 )
 (func $self (; 34 ;) (result i32)
  (local $x i32)
  (loop $loop
   (local.set $x
    (i32.add
     (local.get $x)
     (i32.const 1)
    )
   )
   (br_if $loop
    (i32.const 1)
   )
  )
  (local.get $x)
 )
 (func $nested-set (; 35 ;)
  (local $var$0 i32)
  (local $var$1 i64)
  (loop $label$1
   (local.set $var$0
    (block $label$3 (result i32)
     (local.set $var$1
      (i64.const 0)
     )
     (local.get $var$0)
    )
   )
   (local.set $var$1
    (i64.const 1)
   )
   (br_if $label$1
    (i32.const 0)
   )
  )
 )
 (func $load-store (; 36 ;) (param $x i32)
  (loop $loop
   (drop
    (i32.load
     (i32.const 0)
    )
   )
   (i32.store
    (local.get $x)
    (local.get $x)
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $set-set (; 37 ;) (param $x i32) (result i32)
  (loop $loop
   (local.set $x
    (i32.const 1)
   )
   (br_if $loop
    (i32.const 2)
   )
   (local.set $x
    (i32.const 3)
   )
   (br_if $loop
    (i32.const 4)
   )
  )
  (local.get $x)
 )
 (func $copies-no (; 38 ;)
  (local $x i32)
  (local $y i32)
  (local $z i32)
  (local $a i32)
  (local $b i32)
  (local $c i32)
  (loop $loop
   (local.set $x
    (local.get $x)
   )
   (local.set $y
    (local.get $z)
   )
   (local.set $a
    (local.tee $b
     (local.get $c)
    )
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $consts-no (; 39 ;)
  (local $x i32)
  (local $a i32)
  (local $b i32)
  (loop $loop
   (local.set $x
    (i32.const 0)
   )
   (local.set $a
    (local.tee $b
     (i32.const 1)
    )
   )
   (br_if $loop
    (i32.const 1)
   )
  )
 )
 (func $global (; 40 ;)
  (local $x i32)
  (local.set $x
   (global.get $glob)
  )
  (drop
   (local.get $x)
  )
  (loop $loop
   (nop)
   (nop)
   (br_if $loop
    (local.get $x)
   )
  )
 )
)
