(module
 (type $5 (func (param i32) (result i32)))
 (type $FUNCSIG$v (func))
 (type $FUNCSIG$i (func (result i32)))
 (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
 (type $6 (func (param i32 i32 i32 i32 i32 i32)))
 (type $7 (func (param i32 i32 i32) (result i32)))
 (type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32)))
 (type $9 (func (param i32 i32) (result i32)))
 (type $10 (func (param f32)))
 (type $4 (func (param i32)))
 (type $12 (func (param i32 i32)))
 (type $13 (func (param i64)))
 (type $14 (func (param i32 f64 f64 f32 i32) (result f64)))
 (import "env" "waka" (func $waka (type $FUNCSIG$v)))
 (import "env" "waka_int" (func $waka_int (type $FUNCSIG$i) (result i32)))
 (import "env" "i64sub" (func $_i64Subtract (type $FUNCSIG$iiiii) (param i32 i32 i32 i32) (result i32)))
 (import "env" "moddi" (func $___udivmoddi4 (type $FUNCSIG$iiiiii) (param i32 i32 i32 i32 i32) (result i32)))
 (import "env" "lp" (func $lp (type $9) (param i32 i32) (result i32)))
 (import "fuzzing-support" "log-f32" (func $fimport$0 (type $10) (param f32)))
 (global $global$0 (mut i32) (i32.const 10))
 (memory $0 256 256)
 (func $contrast (type $FUNCSIG$v)
  (local $x i32)
  (local $y i32)
  (local $z i32)
  (local $a i32)
  (local $b i32)
  (nop)
  (if
   (local.tee $x
    (i32.const 1)
   )
   (then
    (nop)
   )
  )
  (if
   (local.get $x)
   (then
    (nop)
   )
  )
  (nop)
  (drop
   (if (result i32)
    (i32.const 2)
    (then
     (i32.const 3)
    )
    (else
     (i32.const 4)
    )
   )
  )
  (nop)
  (drop
   (block (result i32)
    (i32.const 5)
   )
  )
  (nop)
  (drop
   (if (result i32)
    (i32.const 6)
    (then
     (nop)
     (i32.const 7)
    )
    (else
     (nop)
     (i32.const 8)
    )
   )
  )
  (nop)
  (drop
   (block $val (result i32)
    (if
     (i32.const 10)
     (then
      (nop)
      (br $val
       (i32.const 11)
      )
     )
    )
    (nop)
    (i32.const 12)
   )
  )
 )
 (func $b0-yes (type $4) (param $i1 i32)
  (local $x i32)
  (local $y i32)
  (local $a i32)
  (local $b i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (nop)
  (drop
   (i32.const 5)
  )
  (block $block0
   (nop)
   (drop
    (i32.const 7)
   )
  )
  (nop)
  (drop
   (i32.const 11)
  )
  (drop
   (i32.const 9)
  )
  (drop
   (local.get $y)
  )
  (block $block1
   (drop
    (i32.const 8)
   )
   (drop
    (local.get $y)
   )
  )
  (drop
   (i32.const 11)
  )
  (drop
   (local.get $y)
  )
  (nop)
  (nop)
  (nop)
  (nop)
  (nop)
  (nop)
  (nop)
  (block $block2
   (nop)
   (nop)
   (drop
    (i32.const 1)
   )
   (drop
    (i32.const 2)
   )
   (drop
    (i32.const 3)
   )
   (drop
    (i32.const 4)
   )
   (nop)
   (nop)
   (drop
    (i32.const 6)
   )
   (drop
    (i32.const 5)
   )
   (drop
    (i32.const 7)
   )
   (drop
    (i32.const 8)
   )
   (nop)
   (nop)
   (call $waka)
   (drop
    (i32.const 9)
   )
   (drop
    (i32.const 10)
   )
   (drop
    (i32.const 11)
   )
   (drop
    (i32.const 12)
   )
   (nop)
   (nop)
   (drop
    (i32.load
     (i32.const 24)
    )
   )
   (drop
    (i32.const 13)
   )
   (drop
    (i32.const 14)
   )
   (drop
    (i32.const 15)
   )
   (drop
    (i32.const 16)
   )
   (nop)
   (nop)
   (i32.store
    (i32.const 48)
    (i32.const 96)
   )
   (drop
    (i32.const 17)
   )
   (nop)
  )
  (block $block3
   (nop)
   (local.set $a
    (call $waka_int)
   )
   (call $waka)
   (local.set $a
    (call $waka_int)
   )
   (call $waka)
   (drop
    (local.get $a)
   )
   (call $waka)
   (local.set $a
    (call $waka_int)
   )
   (drop
    (i32.load
     (i32.const 1)
    )
   )
   (drop
    (local.get $a)
   )
   (call $waka)
   (local.set $a
    (call $waka_int)
   )
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (drop
    (local.get $a)
   )
   (call $waka)
   (nop)
   (local.set $a
    (i32.load
     (i32.const 100)
    )
   )
   (call $waka)
   (nop)
   (drop
    (i32.load
     (i32.const 1)
    )
   )
   (local.set $a
    (i32.load
     (i32.const 101)
    )
   )
   (call $waka)
   (local.set $a
    (i32.load
     (i32.const 102)
    )
   )
   (call $waka)
   (drop
    (local.get $a)
   )
   (call $waka)
   (local.set $a
    (i32.load
     (i32.const 103)
    )
   )
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (drop
    (local.get $a)
   )
   (call $waka)
   (nop)
   (local.set $a
    (block (result i32)
     (block
      (nop)
      (i32.store
       (i32.const 104)
       (local.tee $5
        (i32.const 105)
       )
      )
     )
     (local.get $5)
    )
   )
   (call $waka)
   (local.set $a
    (block (result i32)
     (block
      (nop)
      (i32.store
       (i32.const 106)
       (local.tee $6
        (i32.const 107)
       )
      )
     )
     (local.get $6)
    )
   )
   (call $waka)
   (drop
    (local.get $a)
   )
   (call $waka)
   (local.set $a
    (block (result i32)
     (block
      (nop)
      (i32.store
       (i32.const 108)
       (local.tee $7
        (i32.const 109)
       )
      )
     )
     (local.get $7)
    )
   )
   (drop
    (i32.load
     (i32.const 1)
    )
   )
   (drop
    (local.get $a)
   )
   (call $waka)
   (local.set $a
    (block (result i32)
     (block
      (nop)
      (i32.store
       (i32.const 110)
       (local.tee $8
        (i32.const 111)
       )
      )
     )
     (local.get $8)
    )
   )
   (i32.store
    (i32.const 1)
    (i32.const 2)
   )
   (drop
    (local.get $a)
   )
   (call $waka)
  )
  (block $out-of-block
   (nop)
   (nop)
   (drop
    (block $b (result i32)
     (block $c
      (br $b
       (i32.const 1337)
      )
     )
     (nop)
     (i32.const 9876)
    )
   )
  )
  (block $loopey
   (local.set $a
    (i32.const 1337)
   )
   (drop
    (loop $loop-in5 (result i32)
     (drop
      (local.get $a)
     )
     (local.tee $a
      (i32.const 9876)
     )
    )
   )
   (drop
    (local.get $a)
   )
  )
 )
 (func $Ia (type $5) (param $a i32) (result i32)
  (local $b i32)
  (block $switch$0
   (block $switch-default$6
    (nop)
   )
  )
  (return
   (i32.const 60)
  )
 )
 (func $memories (type $6) (param $i2 i32) (param $i3 i32) (param $bi2 i32) (param $bi3 i32) (param $ci3 i32) (param $di3 i32)
  (local $set_with_no_get i32)
  (nop)
  (i32.store8
   (local.get $i2)
   (i32.const 1)
  )
  (nop)
  (i32.store8
   (local.tee $bi3
    (i32.const 1)
   )
   (local.get $bi3)
  )
  (nop)
  (i32.store8
   (local.get $bi3)
   (local.get $bi3)
  )
  (local.set $di3
   (local.tee $bi3
    (i32.const 123)
   )
  )
  (i32.store8
   (local.get $bi3)
   (local.get $di3)
  )
  (nop)
 )
 (func $___remdi3 (type $FUNCSIG$iiiii) (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32)
  (local $$1$1 i32)
  (local $$1$0 i32)
  (local $$rem i32)
  (local $__stackBase__ i32)
  (local $$2$1 i32)
  (local $$2$0 i32)
  (local $$4$1 i32)
  (local $$4$0 i32)
  (local $$10$1 i32)
  (local $$10$0 i32)
  (local $$6$0 i32)
  (local.set $__stackBase__
   (i32.load
    (i32.const 8)
   )
  )
  (i32.store
   (i32.const 8)
   (i32.add
    (i32.load
     (i32.const 8)
    )
    (i32.const 16)
   )
  )
  (local.set $$rem
   (local.get $__stackBase__)
  )
  (nop)
  (nop)
  (nop)
  (nop)
  (nop)
  (nop)
  (drop
   (call $___udivmoddi4
    (call $_i64Subtract
     (i32.xor
      (local.tee $$1$0
       (i32.or
        (i32.shr_s
         (local.get $$a$1)
         (i32.const 31)
        )
        (i32.shl
         (if (result i32)
          (i32.lt_s
           (local.get $$a$1)
           (i32.const 0)
          )
          (then
           (i32.const -1)
          )
          (else
           (i32.const 0)
          )
         )
         (i32.const 1)
        )
       )
      )
      (local.get $$a$0)
     )
     (i32.xor
      (local.tee $$1$1
       (i32.or
        (i32.shr_s
         (if (result i32)
          (i32.lt_s
           (local.get $$a$1)
           (i32.const 0)
          )
          (then
           (i32.const -1)
          )
          (else
           (i32.const 0)
          )
         )
         (i32.const 31)
        )
        (i32.shl
         (if (result i32)
          (i32.lt_s
           (local.get $$a$1)
           (i32.const 0)
          )
          (then
           (i32.const -1)
          )
          (else
           (i32.const 0)
          )
         )
         (i32.const 1)
        )
       )
      )
      (local.get $$a$1)
     )
     (local.get $$1$0)
     (local.get $$1$1)
    )
    (i32.load
     (i32.const 168)
    )
    (call $_i64Subtract
     (i32.xor
      (local.tee $$2$0
       (i32.or
        (i32.shr_s
         (local.get $$b$1)
         (i32.const 31)
        )
        (i32.shl
         (if (result i32)
          (i32.lt_s
           (local.get $$b$1)
           (i32.const 0)
          )
          (then
           (i32.const -1)
          )
          (else
           (i32.const 0)
          )
         )
         (i32.const 1)
        )
       )
      )
      (local.get $$b$0)
     )
     (i32.xor
      (local.tee $$2$1
       (i32.or
        (i32.shr_s
         (if (result i32)
          (i32.lt_s
           (local.get $$b$1)
           (i32.const 0)
          )
          (then
           (i32.const -1)
          )
          (else
           (i32.const 0)
          )
         )
         (i32.const 31)
        )
        (i32.shl
         (if (result i32)
          (i32.lt_s
           (local.get $$b$1)
           (i32.const 0)
          )
          (then
           (i32.const -1)
          )
          (else
           (i32.const 0)
          )
         )
         (i32.const 1)
        )
       )
      )
      (local.get $$b$1)
     )
     (local.get $$2$0)
     (local.get $$2$1)
    )
    (i32.load
     (i32.const 168)
    )
    (local.get $$rem)
   )
  )
  (local.set $$10$0
   (call $_i64Subtract
    (i32.xor
     (i32.load
      (local.get $$rem)
     )
     (local.get $$1$0)
    )
    (i32.xor
     (i32.load offset=4
      (local.get $$rem)
     )
     (local.get $$1$1)
    )
    (local.get $$1$0)
    (local.get $$1$1)
   )
  )
  (local.set $$10$1
   (i32.load
    (i32.const 168)
   )
  )
  (i32.store
   (i32.const 8)
   (local.get $__stackBase__)
  )
  (return
   (block $block12 (result i32)
    (i32.store
     (i32.const 168)
     (local.get $$10$1)
    )
    (local.get $$10$0)
   )
  )
 )
 (func $block-returns (type $FUNCSIG$v)
  (local $x i32)
  (local.set $x
   (block $out (result i32)
    (nop)
    (drop
     (br_if $out
      (local.tee $x
       (block $waka (result i32)
        (nop)
        (drop
         (br_if $waka
          (local.tee $x
           (i32.const 12)
          )
          (i32.const 1)
         )
        )
        (nop)
        (i32.const 34)
       )
      )
      (i32.const 1)
     )
    )
    (drop
     (local.get $x)
    )
    (block $waka2
     (local.set $x
      (if (result i32)
       (i32.const 1)
       (then
        (nop)
        (i32.const 13)
       )
       (else
        (nop)
        (i32.const 24)
       )
      )
     )
     (nop)
    )
    (drop
     (br_if $out
      (local.tee $x
       (if (result i32)
        (i32.const 1)
        (then
         (block $block3
          (nop)
         )
         (i32.const 14)
        )
        (else
         (block $block5
          (nop)
         )
         (i32.const 25)
        )
       )
      )
      (i32.const 1)
     )
    )
    (block $sink-out-of-me-i-have-but-one-exit
     (nop)
    )
    (nop)
    (i32.const 99)
   )
  )
 )
 (func $multiple (type $6) (param $s i32) (param $r i32) (param $f i32) (param $p i32) (param $t i32) (param $m i32)
  (nop)
  (local.set $r
   (i32.add
    (local.get $f)
    (local.get $p)
   )
  )
  (local.set $t
   (local.get $p)
  )
  (local.set $p
   (i32.load
    (i32.const 0)
   )
  )
  (i32.store
   (local.get $r)
   (local.get $t)
  )
  (drop
   (local.get $m)
  )
  (drop
   (local.get $t)
  )
 )
 (func $switch-def (type $5) (param $i3 i32) (result i32)
  (local $i1 i32)
  (local.set $i1
   (i32.const 10)
  )
  (block $switch$def
   (block $switch-case$1
    (br_table $switch-case$1 $switch$def
     (local.get $i3)
    )
   )
   (local.set $i1
    (i32.const 1)
   )
  )
  (return
   (local.get $i1)
  )
 )
 (func $no-out-of-label (type $12) (param $x i32) (param $y i32)
  (nop)
  (local.set $x
   (loop $moar (result i32)
    (nop)
    (block (result i32)
     (br_if $moar
      (local.get $x)
     )
     (i32.const 0)
    )
   )
  )
  (block $moar0
   (local.set $y
    (block (result i32)
     (br_if $moar0
      (local.get $y)
     )
     (i32.const 0)
    )
   )
  )
  (drop
   (local.get $y)
  )
 )
 (func $freetype-cd (type $5) (param $a i32) (result i32)
  (local $e i32)
  (nop)
  (local.tee $a
   (loop $while-in$1 (result i32)
    (nop)
    (block $while-out$0 (result i32)
     (local.set $e
      (local.get $a)
     )
     (nop)
     (drop
      (br_if $while-out$0
       (local.tee $a
        (i32.const 4)
       )
       (local.get $e)
      )
     )
     (nop)
     (i32.add
      (local.get $a)
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $drop-if-value (type $7) (param $x i32) (param $y i32) (param $z i32) (result i32)
  (local $temp i32)
  (drop
   (if (result i32)
    (local.get $x)
    (then
     (block $block53 (result i32)
      (nop)
      (local.set $temp
       (local.get $y)
      )
      (local.get $z)
     )
    )
    (else
     (block $block54 (result i32)
      (nop)
      (local.set $temp
       (local.get $y)
      )
      (local.get $z)
     )
    )
   )
  )
  (drop
   (local.get $temp)
  )
  (return
   (i32.const 0)
  )
 )
 (func $drop-br_if (type $7) (param $label i32) (param $$cond2 i32) (param $$$0151 i32) (result i32)
  (nop)
  (local.tee $label
   (block $label$break$L4 (result i32)
    (if
     (i32.eq
      (local.get $label)
      (i32.const 15)
     )
     (then
      (block $block
       (nop)
       (nop)
       (drop
        (br_if $label$break$L4
         (local.tee $label
          (i32.const 0)
         )
         (i32.eqz
          (i32.eq
           (local.get $$$0151)
           (i32.const 0)
          )
         )
        )
       )
      )
     )
    )
    (nop)
    (i32.const 1)
   )
  )
 )
 (func $drop-tee-unreachable (type $FUNCSIG$v)
  (local $x i32)
  (local.tee $x
   (unreachable)
  )
  (drop
   (local.get $x)
  )
 )
 (func $if-return-but-unreachable (type $13) (param $var$0 i64)
  (if
   (unreachable)
   (then
    (drop
     (local.get $var$0)
    )
   )
   (else
    (local.set $var$0
     (i64.const 1)
    )
   )
  )
 )
 (func $if-one-side (type $FUNCSIG$i) (result i32)
  (local $x i32)
  (nop)
  (local.tee $x
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 2)
    )
    (else
     (local.get $x)
    )
   )
  )
 )
 (func $if-one-side-undo (type $FUNCSIG$i) (result i32)
  (local $x i32)
  (local $y i32)
  (local.set $y
   (i32.const 0)
  )
  (local.set $x
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 2)
    )
    (else
     (local.get $x)
    )
   )
  )
  (local.get $y)
 )
 (func $if-one-side-multi (type $5) (param $0 i32) (result i32)
  (nop)
  (local.tee $0
   (if (result i32)
    (i32.lt_s
     (local.get $0)
     (i32.const -1073741824)
    )
    (then
     (nop)
     (i32.const -1073741824)
    )
    (else
     (nop)
     (if (result i32)
      (i32.gt_s
       (local.get $0)
       (i32.const 1073741823)
      )
      (then
       (nop)
       (i32.const 1073741823)
      )
      (else
       (local.get $0)
      )
     )
    )
   )
  )
 )
 (func $if-one-side-undo-but-its-a-tee (type $5) (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $x i32)
  (local $y i32)
  (local $z i32)
  (local.set $x
   (if (result i32)
    (i32.const -1)
    (then
     (i32.const -2)
    )
    (else
     (local.get $x)
    )
   )
  )
  (drop
   (call $if-one-side-undo-but-its-a-tee
    (local.tee $x
     (if (result i32)
      (i32.const -3)
      (then
       (i32.const -4)
      )
      (else
       (local.get $x)
      )
     )
    )
   )
  )
  (nop)
  (drop
   (i32.eqz
    (local.tee $y
     (if (result i32)
      (i32.const -5)
      (then
       (i32.const -6)
      )
      (else
       (local.get $y)
      )
     )
    )
   )
  )
  (nop)
  (drop
   (i32.add
    (local.tee $z
     (if (result i32)
      (i32.const -7)
      (then
       (i32.const -8)
      )
      (else
       (local.get $z)
      )
     )
    )
    (local.get $z)
   )
  )
  (if
   (block $label$1 (result i32)
    (nop)
    (nop)
    (local.tee $4
     (if (result i32)
      (local.tee $4
       (if (result i32)
        (i32.const 1)
        (then
         (nop)
         (i32.const 2)
        )
        (else
         (local.get $4)
        )
       )
      )
      (then
       (nop)
       (i32.const 0)
      )
      (else
       (local.get $4)
      )
     )
    )
   )
   (then
    (unreachable)
   )
  )
  (i32.const 0)
 )
 (func $splittable-ifs-multicycle (type $5) (param $20 i32) (result i32)
  (nop)
  (local.tee $20
   (if (result i32)
    (i32.const 1)
    (then
     (if (result i32)
      (i32.const 2)
      (then
       (if (result i32)
        (i32.const 3)
        (then
         (i32.const 4)
        )
        (else
         (local.get $20)
        )
       )
      )
      (else
       (local.get $20)
      )
     )
    )
    (else
     (local.get $20)
    )
   )
  )
 )
 (func $update-getCounter (type $14) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f32) (param $4 i32) (result f64)
  (global.set $global$0
   (i32.sub
    (global.get $global$0)
    (i32.const 1)
   )
  )
  (global.set $global$0
   (i32.sub
    (global.get $global$0)
    (i32.const 1)
   )
  )
  (loop $label$1 (result f64)
   (global.set $global$0
    (i32.sub
     (global.get $global$0)
     (i32.const 1)
    )
   )
   (global.set $global$0
    (i32.sub
     (global.get $global$0)
     (i32.const 1)
    )
   )
   (call $fimport$0
    (local.tee $3
     (if (result f32)
      (i32.eqz
       (local.get $0)
      )
      (then
       (f32.const 4623408228068004207103214e13)
      )
      (else
       (local.get $3)
      )
     )
    )
   )
   (global.set $global$0
    (i32.sub
     (global.get $global$0)
     (i32.const 1)
    )
   )
   (if (result f64)
    (global.get $global$0)
    (then
     (global.set $global$0
      (i32.sub
       (global.get $global$0)
       (i32.const 1)
      )
     )
     (local.set $0
      (i32.const -65)
     )
     (global.set $global$0
      (i32.sub
       (global.get $global$0)
       (i32.const 1)
      )
     )
     (br $label$1)
    )
    (else
     (f64.const -70)
    )
   )
  )
 )
)
(module
 (type $FUNCSIG$v (func))
 (type $FUNCSIG$i (func (result i32)))
 (type $5 (func (param i32) (result i32)))
 (type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32)))
 (type $4 (func (param i32)))
 (type $7 (func (param f32)))
 (type $8 (func (param i32 i32)))
 (type $9 (func (result f64)))
 (type $10 (func (param i32 i32) (result f64)))
 (type $11 (func (param i32 i32) (result i32)))
 (import "env" "get1" (func $fimport$0 (type $FUNCSIG$i) (result i32)))
 (import "fuzzing-support" "log-i32" (func $fimport$1 (type $4) (param i32)))
 (import "fuzzing-support" "log-f32" (func $fimport$2 (type $7) (param f32)))
 (global $global$0 (mut i32) (i32.const 10))
 (memory $0 256 256 shared)
 (func $nonatomics (type $FUNCSIG$i) (result i32)
  (local $x i32)
  (nop)
  (drop
   (i32.load
    (i32.const 1028)
   )
  )
  (i32.load
   (i32.const 1024)
  )
 )
 (func $nonatomic-growmem (type $FUNCSIG$i) (result i32)
  (local $x i32)
  (local.set $x
   (i32.load
    (memory.grow
     (i32.const 1)
    )
   )
  )
  (drop
   (i32.load
    (i32.const 1028)
   )
  )
  (local.get $x)
 )
 (func $atomics (type $FUNCSIG$v)
  (local $x i32)
  (local.set $x
   (i32.atomic.load
    (i32.const 1024)
   )
  )
  (drop
   (i32.atomic.load
    (i32.const 1028)
   )
  )
  (drop
   (local.get $x)
  )
 )
 (func $one-atomic (type $FUNCSIG$v)
  (local $x i32)
  (local.set $x
   (i32.load
    (i32.const 1024)
   )
  )
  (drop
   (i32.atomic.load
    (i32.const 1028)
   )
  )
  (drop
   (local.get $x)
  )
 )
 (func $other-atomic (type $FUNCSIG$v)
  (local $x i32)
  (local.set $x
   (i32.atomic.load
    (i32.const 1024)
   )
  )
  (drop
   (i32.load
    (i32.const 1028)
   )
  )
  (drop
   (local.get $x)
  )
 )
 (func $atomic-growmem (type $FUNCSIG$i) (result i32)
  (local $x i32)
  (local.set $x
   (i32.load
    (memory.grow
     (i32.const 1)
    )
   )
  )
  (drop
   (i32.atomic.load
    (i32.const 1028)
   )
  )
  (local.get $x)
 )
 (func $atomicrmw (type $FUNCSIG$v)
  (local $x i32)
  (local.set $x
   (i32.atomic.rmw.add
    (i32.const 1024)
    (i32.const 1)
   )
  )
  (drop
   (i32.atomic.load
    (i32.const 1028)
   )
  )
  (drop
   (local.get $x)
  )
 )
 (func $atomic-cmpxchg (type $FUNCSIG$v)
  (local $x i32)
  (local.set $x
   (i32.atomic.rmw.cmpxchg
    (i32.const 1024)
    (i32.const 1)
    (i32.const 2)
   )
  )
  (drop
   (i32.atomic.load
    (i32.const 1028)
   )
  )
  (drop
   (local.get $x)
  )
 )
 (func $br-value-reordering (type $FUNCSIG$i) (result i32)
  (local $temp i32)
  (block $outside
   (loop $loop
    (br_if $outside
     (block (result i32)
      (br_if $loop
       (local.get $temp)
      )
      (unreachable)
      (local.set $temp
       (i32.const -1)
      )
      (i32.const 0)
     )
    )
   )
   (local.set $temp
    (i32.const -1)
   )
  )
  (unreachable)
 )
 (func $br-value-reordering-safe (type $FUNCSIG$i) (result i32)
  (local $temp i32)
  (local.set $temp
   (block $outside (result i32)
    (loop $loop
     (drop
      (local.get $temp)
     )
     (drop
      (br_if $outside
       (local.tee $temp
        (i32.const -1)
       )
       (block (result i32)
        (nop)
        (i32.const 0)
       )
      )
     )
    )
    (nop)
    (i32.const -1)
   )
  )
  (unreachable)
 )
 (func $if-one-side-unreachable (type $FUNCSIG$v)
  (local $x i32)
  (block $out
   (drop
    (if (result i32)
     (i32.const 1)
     (then
      (br $out)
      (nop)
     )
     (else
      (nop)
      (i32.const 2)
     )
    )
   )
   (drop
    (if (result i32)
     (i32.const 3)
     (then
      (nop)
      (i32.const 4)
     )
     (else
      (br $out)
      (nop)
     )
    )
   )
   (if
    (i32.const 5)
    (then
     (br $out)
    )
    (else
     (br $out)
    )
   )
  )
 )
 (func $if-one-side-unreachable-blocks (type $FUNCSIG$v)
  (local $x i32)
  (local $y i32)
  (block $out
   (drop
    (if (result i32)
     (i32.const 1)
     (then
      (nop)
      (nop)
      (br $out)
      (nop)
     )
     (else
      (nop)
      (nop)
      (i32.const 4)
     )
    )
   )
   (drop
    (if (result i32)
     (i32.const 6)
     (then
      (nop)
      (nop)
      (i32.const 7)
     )
     (else
      (nop)
      (nop)
      (br $out)
      (nop)
     )
    )
   )
   (if
    (i32.const 11)
    (then
     (nop)
     (nop)
     (br $out)
    )
    (else
     (nop)
     (nop)
     (br $out)
    )
   )
  )
 )
 (func $loop-value (type $5) (param $x i32) (result i32)
  (loop $loopy
   (unreachable)
  )
  (nop)
  (loop $loopy0 (result i32)
   (nop)
   (i32.const 1)
  )
 )
 (func $loop-loop-loopy-value (type $5) (param $x i32) (result i32)
  (nop)
  (loop $loopy1 (result i32)
   (nop)
   (loop $loopy2 (result i32)
    (nop)
    (loop $loopy3 (result i32)
     (nop)
     (i32.const 1)
    )
   )
  )
 )
 (func $loop-modified-during-main-pass-be-careful-fuzz (type $FUNCSIG$i) (result i32)
  (local $0 i32)
  (nop)
  (if (result i32)
   (i32.const 0)
   (then
    (nop)
    (i32.const 0)
   )
   (else
    (loop $label$4
     (br $label$4)
    )
    (nop)
   )
  )
 )
 (func $loop-later (type $FUNCSIG$iiiiii) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (param $var$3 i32) (param $var$4 i32) (result i32)
  (nop)
  (i32.const 0)
 )
 (func $pick (type $FUNCSIG$v)
  (local $x i32)
  (local $y i32)
  (local.set $x
   (local.get $y)
  )
  (drop
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 1)
    )
    (else
     (local.get $x)
    )
   )
  )
  (drop
   (local.get $y)
  )
  (local.set $x
   (local.get $y)
  )
 )
 (func $pick-2 (type $FUNCSIG$v)
  (local $x i32)
  (local $y i32)
  (local.set $y
   (local.get $x)
  )
  (drop
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 1)
    )
    (else
     (local.get $y)
    )
   )
  )
  (drop
   (local.get $x)
  )
  (local.set $y
   (local.get $x)
  )
 )
 (func $many (type $FUNCSIG$v)
  (local $x i32)
  (local $y i32)
  (local $z i32)
  (local $w i32)
  (nop)
  (nop)
  (local.set $z
   (local.tee $y
    (local.get $x)
   )
  )
  (drop
   (local.get $x)
  )
  (local.set $y
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 1)
    )
    (else
     (local.get $y)
    )
   )
  )
  (local.set $x
   (local.get $z)
  )
  (drop
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 1)
    )
    (else
     (local.get $y)
    )
   )
  )
  (nop)
  (nop)
  (local.set $y
   (local.get $x)
  )
  (nop)
  (local.set $x
   (local.tee $z
    (i32.const 2)
   )
  )
  (drop
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 1)
    )
    (else
     (local.get $y)
    )
   )
  )
  (nop)
  (nop)
  (local.set $y
   (local.get $x)
  )
  (local.set $z
   (i32.const 2)
  )
  (drop
   (local.get $x)
  )
 )
 (func $loop-copies (type $8) (param $x i32) (param $y i32)
  (loop $loop
   (nop)
   (drop
    (local.get $y)
   )
   (br_if $loop
    (local.get $y)
   )
  )
 )
 (func $proper-type (type $9) (result f64)
  (local $var$0 i32)
  (local $var$2 f64)
  (local.set $var$0
   (select
    (i32.const 0)
    (i32.const 1)
    (local.get $var$0)
   )
  )
  (local.get $var$2)
 )
 (func $multi-pass-get-equivs-right (type $10) (param $var$0 i32) (param $var$1 i32) (result f64)
  (local $var$2 i32)
  (nop)
  (i32.store
   (local.get $var$0)
   (i32.const 1)
  )
  (f64.promote_f32
   (f32.load
    (local.get $var$0)
   )
  )
 )
 (func $if-value-structure-equivalent (type $5) (param $x i32) (result i32)
  (local $y i32)
  (nop)
  (local.tee $x
   (if (result i32)
    (i32.const 1)
    (then
     (nop)
     (i32.const 2)
    )
    (else
     (nop)
     (nop)
     (local.get $x)
    )
   )
  )
 )
 (func $set-tee-need-one-of-them (type $11) (param $var$0 i32) (param $var$1 i32) (result i32)
  (local $var$2 i32)
  (local $var$3 i32)
  (local.set $var$2
   (local.get $var$0)
  )
  (loop $loop
   (br_if $loop
    (local.get $var$1)
   )
  )
  (local.get $var$2)
 )
 (func $loop-value-harder (type $FUNCSIG$i) (result i32)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 f32)
  (local $4 f32)
  (local $5 f32)
  (local $6 f32)
  (local $7 f32)
  (local $8 f32)
  (local $9 f32)
  (local $10 f32)
  (block $label$1
   (nop)
   (nop)
   (call $fimport$2
    (loop $label$2 (result f32)
     (block $label$3
      (global.set $global$0
       (i32.const -1)
      )
      (block $label$4
       (nop)
       (nop)
      )
      (nop)
      (nop)
     )
     (nop)
     (nop)
     (if (result f32)
      (call $fimport$0)
      (then
       (nop)
       (f32.const -2048)
      )
      (else
       (call $fimport$1
        (i32.const -25732)
       )
       (br $label$2)
       (nop)
      )
     )
    )
   )
   (nop)
  )
  (nop)
  (return
   (i32.const -5417091)
  )
 )
 (func $tee-chain (type $FUNCSIG$iiiiii) (param $x i32) (param $z i32) (param $t1 i32) (param $t2 i32) (param $t3 i32) (result i32)
  (nop)
  (drop
   (i32.const 10)
  )
  (nop)
  (local.set $t2
   (local.tee $t3
    (local.tee $t1
     (call $tee-chain
      (local.get $x)
      (local.tee $z
       (i32.const 10)
      )
      (local.get $t1)
      (local.get $t2)
      (local.get $t3)
     )
    )
   )
  )
  (call $tee-chain
   (local.get $x)
   (local.get $z)
   (local.get $t1)
   (local.get $t2)
   (local.get $t3)
  )
 )
)
(module
 (type $0 (func))
 (memory $0 256 256)
 (data $0 "hello, there!")
 (func $memory-init-load (type $0)
  (local $x i32)
  (local.set $x
   (i32.load
    (i32.const 0)
   )
  )
  (memory.init $0
   (i32.const 0)
   (i32.const 0)
   (i32.const 5)
  )
  (drop
   (local.get $x)
  )
 )
 (func $memory-init-store (type $0)
  (local $x i32)
  (local.set $x
   (block (result i32)
    (i32.store
     (i32.const 0)
     (i32.const 42)
    )
    (i32.const 0)
   )
  )
  (memory.init $0
   (i32.const 0)
   (i32.const 0)
   (i32.const 5)
  )
  (drop
   (local.get $x)
  )
 )
 (func $memory-copy-load (type $0)
  (local $x i32)
  (local.set $x
   (i32.load
    (i32.const 0)
   )
  )
  (memory.copy
   (i32.const 0)
   (i32.const 8)
   (i32.const 8)
  )
  (drop
   (local.get $x)
  )
 )
 (func $memory-copy-store (type $0)
  (local $x i32)
  (local.set $x
   (block (result i32)
    (i32.store
     (i32.const 0)
     (i32.const 42)
    )
    (i32.const 0)
   )
  )
  (memory.copy
   (i32.const 0)
   (i32.const 8)
   (i32.const 8)
  )
  (drop
   (local.get $x)
  )
 )
 (func $memory-fill-load (type $0)
  (local $x i32)
  (local.set $x
   (i32.load
    (i32.const 0)
   )
  )
  (memory.fill
   (i32.const 0)
   (i32.const 42)
   (i32.const 8)
  )
  (drop
   (local.get $x)
  )
 )
 (func $memory-fill-store (type $0)
  (local $x i32)
  (local.set $x
   (block (result i32)
    (i32.store
     (i32.const 0)
     (i32.const 42)
    )
    (i32.const 0)
   )
  )
  (memory.fill
   (i32.const 0)
   (i32.const 8)
   (i32.const 8)
  )
  (drop
   (local.get $x)
  )
 )
 (func $data-drop-load (type $0)
  (local $x i32)
  (local.set $x
   (i32.load
    (i32.const 0)
   )
  )
  (data.drop $0)
  (drop
   (local.get $x)
  )
 )
 (func $data-drop-store (type $0)
  (local $x i32)
  (local.set $x
   (block (result i32)
    (i32.store
     (i32.const 0)
     (i32.const 42)
    )
    (i32.const 0)
   )
  )
  (data.drop $0)
  (drop
   (local.get $x)
  )
 )
 (func $data-drop-memory-init (type $0)
  (local $x i32)
  (local.set $x
   (block (result i32)
    (memory.init $0
     (i32.const 0)
     (i32.const 0)
     (i32.const 5)
    )
    (i32.const 0)
   )
  )
  (data.drop $0)
  (drop
   (local.get $x)
  )
 )
)
(module
 (type $0 (func (result anyref)))
 (func $subtype-test (type $0) (result anyref)
  (local $0 i31ref)
  (local $1 anyref)
  (local $2 anyref)
  (block
   (nop)
  )
  (nop)
  (local.get $0)
 )
)
