(module
 (type $0 (func (param i32)))
 (type $1 (func))
 (type $2 (func (result i32)))
 (type $3 (func (param i32 i32) (result i32)))
 (type $4 (func (param i32) (result i32)))
 (type $5 (func (result i32 i64)))
 (type $6 (func (result i64)))
 (type $7 (func (param i32 i32)))
 (type $8 (func (param f32 i32 f32 i32 i32 f64 f32) (result i32)))
 (type $9 (func (param i32) (result i64)))
 (type $10 (func (result f32)))
 (type $11 (func (param i32) (result f32)))
 (type $12 (func (param i32 f64 i32 f64 f32 f32) (result i32)))
 (memory $0 256 256)
 (func $b0-yes (param $i1 i32)
  (block $topmost
  )
 )
 (func $b1 (param $i1 i32)
  (block $topmost
   (block
    (drop
     (i32.const 0)
    )
   )
  )
 )
 (func $b2 (param $i1 i32)
  (block $topmost
   (block $inner
   )
  )
 )
 (func $b3-yes (param $i1 i32)
  (block $topmost
   (block $inner
   )
  )
 )
 (func $b4 (param $i1 i32)
  (block $topmost
   (block $inner
    (block
     (drop
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $b5 (param $i1 i32)
  (block $topmost
   (block $inner
    (block
     (drop
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $b6 (param $i1 i32)
  (block $topmost
   (br_if $topmost
    (i32.const 1)
   )
  )
 )
 (func $b7 (param $i1 i32)
  (block $topmost
   (block
    (drop
     (i32.const 0)
    )
    (br_if $topmost
     (i32.const 1)
    )
   )
  )
 )
 (func $b8 (param $i1 i32)
  (block $topmost
   (block $inner
    (br_if $topmost
     (i32.const 1)
    )
   )
  )
 )
 (func $b9 (param $i1 i32)
  (block $topmost
   (block $inner
    (br_if $topmost
     (i32.const 1)
    )
   )
  )
 )
 (func $b10 (param $i1 i32)
  (block $topmost
   (block $inner
    (block
     (drop
      (i32.const 0)
     )
     (br_if $topmost
      (i32.const 1)
     )
    )
   )
  )
 )
 (func $b11 (param $i1 i32)
  (block $topmost
   (block $inner
    (block
     (drop
      (i32.const 0)
     )
     (br_if $topmost
      (i32.const 1)
     )
    )
   )
  )
 )
 (func $b12-yes
  (if
   (i32.const 1)
   (then
    (block $topmost
     (block $block1
      (drop
       (i32.const 12)
      )
      (block
       (drop
        (i32.const 1)
       )
      )
     )
    )
   )
   (else
    (block $block3
     (drop
      (i32.const 27)
     )
     (block
      (drop
       (i32.const 2)
      )
     )
    )
   )
  )
 )
 (func $b13 (result i32)
  (block $topmost (result i32)
   (if
    (i32.const 1)
    (then
     (block $block1
      (drop
       (i32.const 12)
      )
      (drop
       (br_if $topmost
        (i32.const 1)
        (i32.const 1)
       )
      )
     )
    )
    (else
     (block $block3
      (drop
       (i32.const 27)
      )
      (br $topmost
       (i32.const 2)
      )
     )
    )
   )
   (i32.const 3)
  )
 )
 (func $b14 (result i32)
  (select
   (block $topmost (result i32)
    (block $block1 (result i32)
     (i32.const 12)
    )
   )
   (block $block3 (result i32)
    (i32.const 27)
   )
   (i32.const 1)
  )
 )
 (func $b14-tuple (result i32 i64)
  (if (type $5) (result i32 i64)
   (i32.const 1)
   (then
    (block $topmost (type $5) (result i32 i64)
     (block $block1 (type $5) (result i32 i64)
      (tuple.make 2
       (i32.const 12)
       (i64.const 12)
      )
     )
    )
   )
   (else
    (block $block3 (type $5) (result i32 i64)
     (tuple.make 2
      (i32.const 27)
      (i64.const 27)
     )
    )
   )
  )
 )
 (func $b15
  (block $topmost
   (br_if $topmost
    (i32.const 17)
   )
  )
 )
 (func $b15b
  (if
   (i32.const 18)
   (then
    (block $topmost
     (block
      (drop
       (i32.const 0)
      )
     )
    )
   )
  )
 )
 (func $b16
  (block $a
   (block $b
    (block $c
    )
   )
  )
  (block $a1
   (block $b2
    (block $c3
    )
   )
  )
  (block $a4
   (block $b5
    (block $c6
    )
   )
  )
 )
 (func $b17
  (if
   (i32.const 0)
   (then
    (block $a
     (block $block1
     )
    )
   )
   (else
    (block $block3
    )
   )
  )
  (if
   (i32.const 0)
   (then
    (block $a7
     (drop
      (i32.const 1)
     )
    )
   )
   (else
    (block $block6
    )
   )
  )
  (if
   (i32.const 0)
   (then
    (block $a9
     (block $block8
     )
    )
   )
   (else
    (drop
     (i32.const 1)
    )
   )
  )
  (if
   (i32.const 0)
   (then
    (block $c
     (block $b
      (block $block11
      )
     )
    )
   )
   (else
    (block $block13
    )
   )
  )
 )
 (func $ret-1
  (nop)
 )
 (func $ret-2
  (block $block0
   (block $block1
   )
  )
 )
 (func $ret-3
  (if
   (i32.const 0)
   (then
    (block $block0
    )
   )
   (else
    (block $block3
    )
   )
  )
 )
 (func $ret-value (result i32)
  (block $block0 (result i32)
   (block $block1 (result i32)
    (i32.const 1)
   )
  )
 )
 (func $no-select-but-the-last
  (block $a
   (if
    (i32.const 0)
    (then
     (drop
      (i32.const 1)
     )
    )
    (else
     (block $block2
      (block
       (drop
        (i32.const 2)
       )
       (br $a)
      )
      (drop
       (i32.const 3)
      )
     )
    )
   )
   (if
    (i32.const 0)
    (then
     (block $block4
      (block
       (drop
        (i32.const 2)
       )
       (br $a)
      )
      (drop
       (i32.const 3)
      )
     )
    )
    (else
     (drop
      (i32.const 1)
     )
    )
   )
   (if
    (block $block6 (result i32)
     (block
      (drop
       (i32.const 2)
      )
      (br $a)
     )
     (i32.const 3)
    )
    (then
     (drop
      (i32.const 0)
     )
    )
    (else
     (drop
      (i32.const 1)
     )
    )
   )
   (if
    (block $a17 (result i32)
     (i32.const 0)
    )
    (then
     (block $a18
      (block
       (drop
        (i32.const 1)
       )
      )
     )
    )
    (else
     (block $a20
      (block
       (drop
        (i32.const 2)
       )
      )
     )
    )
   )
  )
 )
 (func $side-effects-and-order (result i32)
  (local $x i32)
  (block $do-once$0
   (if
    (call $b13)
    (then
     (drop
      (i32.const 0)
     )
     (br $do-once$0)
    )
   )
   (drop
    (i32.const 1)
   )
  )
  (block $do-once$022
   (if
    (call $b13)
    (then
     (drop
      (call $b14)
     )
     (br $do-once$022)
    )
   )
   (drop
    (i32.const 1)
   )
  )
  (block $do-once$025
   (if
    (i32.const 0)
    (then
     (drop
      (call $b14)
     )
     (br $do-once$025)
    )
   )
   (drop
    (i32.const 1)
   )
  )
  (block $do-once$028 (result i32)
   (if
    (local.tee $x
     (i32.const 1)
    )
    (then
     (br $do-once$028
      (local.tee $x
       (i32.const 2)
      )
     )
    )
   )
   (i32.const 1)
  )
 )
 (func $loops
  (loop $in
   (block $out
    (br_if $in
     (i32.eqz
      (i32.const 0)
     )
    )
   )
  )
  (loop $in30
   (br $in30)
  )
  (loop $loop-in
   (block $out31
    (br_if $out31
     (i32.const 0)
    )
   )
  )
  (loop $in33
   (block $out34
    (br_if $out34
     (i32.const 0)
    )
   )
  )
  (loop $in36
   (nop)
  )
  (loop $in37
   (block $out38
   )
  )
  (loop $in39
   (if
    (i32.eqz
     (i32.const 0)
    )
    (then
     (block $out40
      (nop)
      (br_if $in39
       (i32.const 1)
      )
     )
    )
   )
  )
  (loop $in42
   (block $out43
    (br_if $in42
     (i32.const 0)
    )
   )
  )
  (loop $in45
   (if
    (i32.const 0)
    (then
     (block $out46
      (unreachable)
     )
    )
    (else
     (br $in45)
    )
   )
  )
  (loop $in48
   (if
    (i32.const 0)
    (then
     (block $out49
      (block
       (call $loops)
      )
     )
    )
    (else
     (br $in48)
    )
   )
  )
  (loop $in-todo
   (if
    (i32.const 0)
    (then
     (block $out-todo
     )
    )
    (else
     (call $loops)
     (br $in-todo)
    )
   )
  )
  (loop $in52
   (if
    (i32.const 0)
    (then
     (block $out53
     )
    )
    (else
     (call $loops)
     (br $in52)
    )
   )
  )
  (loop $in55
   (if
    (i32.const 0)
    (then
     (call $loops)
     (br $in55)
    )
    (else
     (block $out56
     )
    )
   )
  )
  (loop $in58
   (if
    (i32.const 0)
    (then
     (drop
      (i32.const 1)
     )
     (call $loops)
     (br $in58)
    )
    (else
     (block $out59
     )
    )
   )
  )
  (loop $in62
   (if
    (i32.const 0)
    (then
     (block $out63
     )
    )
    (else
     (call $loops)
     (drop
      (i32.const 100)
     )
     (br $in62)
    )
   )
  )
  (loop $in65
   (if
    (i32.const 0)
    (then
     (call $loops)
     (drop
      (i32.const 101)
     )
     (br $in65)
    )
    (else
     (block $out66
     )
    )
   )
  )
  (loop $in68
   (if
    (i32.const 0)
    (then
     (drop
      (i32.const 1)
     )
     (call $loops)
     (drop
      (i32.const 102)
     )
     (br $in68)
    )
    (else
     (block $out69
     )
    )
   )
  )
  (loop $in72
   (if
    (i32.eqz
     (i32.const 0)
    )
    (then
     (block $out73
      (nop)
      (call $loops)
      (return)
      (br $in72)
     )
    )
   )
  )
  (loop $in75
   (block $out76
    (br_if $out76
     (i32.const 0)
    )
    (call $loops)
    (br $out76)
    (br $in75)
   )
  )
  (loop $in78
   (if
    (i32.const 0)
    (then
     (block $out79
     )
    )
    (else
     (call $loops)
     (drop
      (block $out2 (result i32)
       (i32.const 1)
      )
     )
     (br $in78)
    )
   )
  )
  (loop $in81
   (block $out82
    (br_if $in81
     (i32.eqz
      (i32.const 0)
     )
    )
   )
  )
  (loop $in-todo2
   (if
    (i32.const 0)
    (then
     (block $out-todo2
     )
    )
    (else
     (call $loops)
     (br $in-todo2)
    )
   )
  )
  (loop $in83
   (block $out84
    (br $out84)
    (br $in83)
   )
  )
  (loop $in85
   (block $out86
    (drop
     (i32.const 0)
    )
    (br $in85)
   )
  )
  (loop $in-not
   (block $out-not
    (br_if $out-not
     (i32.const -1)
    )
    (br_if $out-not
     (i32.const 0)
    )
    (call $loops)
    (br $in-not)
   )
  )
  (loop $in-todo287
   (if
    (i32.const 0)
    (then
     (block $out-todo288
     )
    )
    (else
     (call $loops)
     (drop
      (i32.const 1)
     )
     (br $in-todo287)
    )
   )
  )
 )
 (func $br_if_in_block (result i32)
  (block $outval (result i32)
   (block $in
    (drop
     (i32.const 1)
    )
    (br $in)
    (drop
     (i32.const 2)
    )
    (br_if $in
     (i32.eqz
      (i32.const 3)
     )
    )
    (unreachable)
    (drop
     (i32.const 4)
    )
    (br_if $in
     (i32.const 5)
    )
    (unreachable)
    (drop
     (i32.const 6)
    )
   )
   (select
    (i32.const 7)
    (i32.const 8)
    (i32.const 6)
   )
  )
 )
 (func $threading
  (drop
   (block $value-out (result i32)
    (block $value-in (result i32)
     (block $out
      (block $in
       (br_if $out
        (i32.const 1)
       )
       (br_if $out
        (i32.const 2)
       )
       (br $value-in
        (i32.const 3)
       )
      )
     )
     (i32.const 4)
    )
   )
  )
  (block $stack1
   (block $stack2
    (block $stack3
     (block $stack4
      (br_if $stack1
       (i32.const 1)
      )
      (unreachable)
     )
    )
   )
  )
 )
 (func $if-to-br_if-conflict (param $x i32) (param $y i32) (result i32)
  (block $leave
   (local.set $y
    (block $out (result i32)
     (if
      (local.get $x)
      (then
       (br $out
        (block (result i32)
         (local.set $x
          (i32.const 0)
         )
         (i32.const 1)
        )
       )
      )
      (else
       (br_if $leave
        (i32.const 1)
       )
      )
     )
     (unreachable)
    )
   )
  )
  (i32.add
   (local.get $x)
   (local.get $y)
  )
 )
 (func $if-to-br_if-conflict2 (param $x i32) (param $y i32) (result i32)
  (block $leave
   (local.set $y
    (block $out (result i32)
     (if
      (local.get $x)
      (then
       (br_if $leave
        (i32.const 1)
       )
      )
      (else
       (br $out
        (block (result i32)
         (local.set $x
          (i32.const 0)
         )
         (i32.const 1)
        )
       )
      )
     )
     (unreachable)
    )
   )
  )
  (i32.add
   (local.get $x)
   (local.get $y)
  )
 )
 (func $if-to-br_if-value-sideeffect (param $x i32) (param $y i32) (result i32)
  (block $leave
   (local.set $y
    (block $out (result i32)
     (if
      (local.get $x)
      (then
       (br $out
        (block (result i32)
         (drop
          (call $if-to-br_if-value-sideeffect
           (i32.const 0)
           (i32.const 1)
          )
         )
         (nop)
         (i32.const 1)
        )
       )
      )
     )
     (unreachable)
    )
   )
  )
  (i32.add
   (local.get $x)
   (local.get $y)
  )
 )
 (func $fuzz (param $j i32) (param $g i32)
  (loop $label$continue$d
   (block $label$break$c
    (block $label$break$d
     (if
      (i32.lt_s
       (local.get $j)
       (i32.const 2147483640)
      )
      (then
       (block $x
        (block $y
         (block $z
          (br_if $x
           (local.get $j)
          )
         )
        )
       )
      )
      (else
       (block $switch$26
       )
      )
     )
     (i32.store
      (i32.const 5724)
      (i32.const -254899267)
     )
     (br $label$continue$d)
    )
   )
  )
 )
 (func $iffify
  (if
   (i32.eqz
    (i32.const 0)
   )
   (then
    (block $yes
     (nop)
     (drop
      (i32.const 1)
     )
     (drop
      (i32.const 2)
     )
    )
   )
  )
  (block $no
   (br_if $no
    (i32.const 0)
   )
   (drop
    (i32.const 1)
   )
   (br $no)
   (drop
    (i32.const 2)
   )
  )
  (block $no2
   (br_if $no2
    (i32.const 0)
   )
  )
  (block $no3
   (br $no3)
   (drop
    (i32.const 1)
   )
   (drop
    (i32.const 2)
   )
  )
  (block $no5
   (block $no4
    (br_if $no5
     (i32.const 0)
    )
    (drop
     (i32.const 1)
    )
    (drop
     (i32.const 2)
    )
   )
  )
 )
 (func $loop-if (result i32)
  (loop $typed (result i32)
   (block $outer (result i32)
    (block (result i32)
     (br_if $typed
      (i32.eqz
       (i32.const 2)
      )
     )
     (block (result i32)
      (drop
       (call $loop-if)
      )
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $block-break (param $0 i32)
  (block $block$7$break
   (block $shape$6$continue
    (call $block-break
     (i32.const 1)
    )
   )
  )
 )
 (func $loop-break (param $0 i32)
  (loop $shape$6$continue
   (block $block$7$break
    (block
     (call $loop-break
      (i32.const 1)
     )
     (br_if $shape$6$continue
      (local.get $0)
     )
    )
   )
  )
 )
 (func $untaken-brs-might-prevent-block-removal (param $0 f32) (param $1 i32) (param $2 f32) (param $3 i32) (param $4 i32) (param $5 f64) (param $6 f32) (result i32)
  (block $label$0 (result i32)
   (block $label$1
    (br_if $label$1
     (i32.const 607395945)
    )
    (br_if $label$1
     (i32.load offset=3 align=1
      (select
       (call $untaken-brs-might-prevent-block-removal
        (f32.const 1.4904844647389837e-07)
        (br_if $label$0
         (i32.store16 offset=4 align=1
          (i32.const 1900641)
          (br $label$0
           (i32.const 1628075109)
          )
         )
         (i32.const 1764950569)
        )
        (f32.const 1.1910939690100655e-32)
        (i32.const 1628057906)
        (i32.const 859068982)
        (f64.const 2.524518840347722e-258)
        (f32.const -nan:0x40a63)
       )
       (i32.const 688529440)
       (i32.const 1751478890)
      )
     )
    )
   )
   (i32.const 1935947830)
  )
 )
 (func $unexitable-loops-result (param $0 i32) (result i64)
  (loop $label$0
   (loop $label$1
    (br_if $label$0
     (i32.load8_s
      (i32.const 201460482)
     )
    )
    (block
     (block $label$3
      (br_if $label$1
       (local.get $0)
      )
     )
     (br $label$1)
    )
   )
  )
 )
 (func $untaken-br-with-concrete-last-element
  (block $label$8
   (block $label$11
    (block $label$14
     (br_if $label$8
      (br $label$8)
     )
    )
   )
  )
 )
 (func $untaken-br-with-concrete-last-element2 (result i32)
  (block $label$8 (result i32)
   (block $label$11 (result i32)
    (block $label$14 (result i32)
     (br_if $label$14
      (i32.const 102)
      (br $label$11
       (i32.const 103)
      )
     )
    )
   )
  )
 )
 (func $untaken-br_if-then-if
  (block $label$0
   (br_if $label$0
    (unreachable)
   )
   (if
    (i32.const 0)
    (then
     (nop)
    )
   )
  )
 )
 (func $unreachable-if-that-could-be-a-br_if (result i64)
  (loop $label$3 (result i64)
   (drop
    (if (result f64)
     (unreachable)
     (then
      (f64.const 1)
     )
     (else
      (br $label$3)
     )
    )
   )
   (i64.const 1)
  )
 )
 (func $nop-br-might-update-type
  (block $label$39
   (drop
    (if (result i32)
     (unreachable)
     (then
      (if (result i32)
       (i32.const 1)
       (then
        (br $label$39)
       )
       (else
        (i32.const 0)
       )
      )
     )
     (else
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $no-flow-through-if-without-else (result f32)
  (local $0 i32)
  (local $2 f32)
  (if (result f32)
   (local.get $0)
   (then
    (block $label$0
     (block $label$11
      (return
       (f32.const 239)
      )
      (if
       (i32.const 0)
       (then
        (return
         (local.get $2)
        )
       )
      )
     )
    )
   )
   (else
    (f32.const -9223372036854775808)
   )
  )
 )
 (func $unreachable-return-loop-value (result i64)
  (loop $loop
   (if
    (i32.const 1)
    (then
     (block $block
      (br_if $block
       (br $loop)
      )
      (br $loop)
     )
    )
   )
   (br $loop)
  )
 )
 (func $obviously-flows-out-maybe (param $var$0 i32) (result f32)
  (block $label$1 (result f32)
   (br $label$1
    (f32.const 1)
   )
   (loop $label$5
    (if
     (i32.const 11)
     (then
      (block $label$8
       (br_if $label$8
        (unreachable)
       )
       (br $label$5)
      )
     )
    )
    (br $label$5)
   )
  )
 )
 (func $br-to-table (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $y $z $tablify|0
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-too-few (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.get $a)
       (i32.const 0)
      )
     )
     (br_if $x
      (i32.eq
       (local.get $a)
       (i32.const 1)
      )
     )
    )
   )
  )
 )
 (func $br-to-table-one-more (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $y $z $x $tablify|0
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-overlap (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.get $a)
       (i32.const 0)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $a)
       (i32.const 1)
      )
     )
     (br_if $z
      (i32.eq
       (local.get $a)
       (i32.const 1)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-overlap-start (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.get $a)
       (i32.const 0)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $a)
       (i32.const 0)
      )
     )
     (br_if $z
      (i32.eq
       (local.get $a)
       (i32.const 1)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-offset (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $y $z $tablify|0
       (i32.sub
        (local.get $a)
        (i32.const 15)
       )
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-RANGE-high (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.get $a)
       (i32.const 0)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $a)
       (i32.const 1)
      )
     )
     (br_if $z
      (i32.eq
       (local.get $a)
       (i32.const 10)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-RANGE-low (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $tablify|0 $tablify|0 $y $tablify|0 $tablify|0 $tablify|0 $tablify|0 $tablify|0 $z $tablify|0
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-bad (param $a i32) (result i32)
  (block $value (result i32)
   (block $x
    (block $y
     (block $z
      (nop)
      (br $x)
      (nop)
      (nop)
      (block $tablify|0
       (br_table $x $y $z $tablify|0
        (local.get $a)
       )
      )
      (unreachable)
     )
     (unreachable)
    )
    (unreachable)
   )
   (i32.const 2000)
  )
 )
 (func $br-to-table-bad2 (param $a i32) (result i32)
  (block $value (result i32)
   (block $x
    (block $y
     (block $z
      (nop)
      (drop
       (br_if $value
        (i32.const 1000)
        (i32.eq
         (local.get $a)
         (i32.const 0)
        )
       )
      )
      (nop)
      (nop)
      (block $tablify|0
       (br_table $x $y $z $tablify|0
        (local.get $a)
       )
      )
      (unreachable)
     )
     (unreachable)
    )
    (unreachable)
   )
   (i32.const 2000)
  )
 )
 (func $br-to-table-bad3 (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (i32.const 10)
       (i32.const 0)
      )
     )
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $y $z $tablify|0
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-multi (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (block $tablify|0
      (br_table $z $y $x $tablify|0
       (i32.sub
        (i32.const 10)
        (i32.const 5)
       )
      )
     )
     (nop)
     (nop)
     (block $tablify|00
      (br_table $x $y $z $tablify|00
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-bad4 (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.ne
       (local.get $a)
       (i32.const 0)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $a)
       (i32.const 1)
      )
     )
     (br_if $z
      (i32.eq
       (local.get $a)
       (i32.const 2)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-bad5 (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.get $a)
       (local.get $a)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $a)
       (local.get $a)
      )
     )
     (br_if $z
      (i32.eq
       (local.get $a)
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-bad6 (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (call $b13)
       (i32.const 0)
      )
     )
     (br_if $y
      (i32.eq
       (call $b13)
       (i32.const 1)
      )
     )
     (br_if $z
      (i32.eq
       (call $b13)
       (i32.const 2)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-bad7 (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.get $a)
       (i32.const -1)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $a)
       (i32.const -1)
      )
     )
     (br_if $z
      (i32.eq
       (local.get $a)
       (i32.const -1)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-defaultNameOverlaps (param $a i32)
  (block $x
   (block $tablify|0
    (block $z
     (nop)
     (nop)
     (block $tablify|1
      (br_table $x $tablify|0 $z $tablify|1
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-unreach (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (unreachable)
       (i32.const 0)
      )
     )
     (br_if $y
      (i32.eq
       (unreachable)
       (i32.const 1)
      )
     )
     (br_if $z
      (i32.eq
       (unreachable)
       (i32.const 2)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-overlap-but-later (param $a i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.get $a)
       (i32.const 0)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $a)
       (i32.const 1)
      )
     )
     (nop)
     (nop)
     (block $tablify|0
      (br_table $z $x $y $tablify|0
       (i32.sub
        (local.get $a)
        (i32.const 1)
       )
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-initial-tee (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $y $z $tablify|0
       (i32.sub
        (local.tee $a
         (i32.add
          (i32.const 10)
          (i32.const 1)
         )
        )
        (i32.const 10)
       )
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-initial-tee-wrong-index (param $a i32)
  (local $b i32)
  (block $x
   (block $y
    (block $z
     (br_if $x
      (i32.eq
       (local.tee $a
        (i32.const 99)
       )
       (i32.const 10)
      )
     )
     (br_if $y
      (i32.eq
       (local.get $b)
       (i32.const 11)
      )
     )
     (br_if $z
      (i32.eq
       (local.get $b)
       (i32.const 12)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-eqz (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $y $z $tablify|0
       (local.get $a)
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $br-to-table-tee-eqz (param $a i32)
  (block $x
   (block $y
    (block $z
     (nop)
     (nop)
     (block $tablify|0
      (br_table $x $y $z $tablify|0
       (local.tee $a
        (i32.add
         (i32.const 0)
         (i32.const 1)
        )
       )
      )
     )
     (unreachable)
    )
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $tiny-switch
  (if
   (i32.const 0)
   (then
    (block $y
    )
   )
   (else
    (block $x
    )
   )
  )
  (block $z
   (block
    (drop
     (i32.const 0)
    )
   )
  )
 )
 (func $trim-switch
  (block $A
   (block $y
    (br_table $A $y $A $y $A $y
     (i32.sub
      (i32.const 0)
      (i32.const 2)
     )
    )
   )
   (call $trim-switch)
  )
 )
 (func $same-target-br_if-and-br
  (block $x
   (drop
    (i32.const 0)
   )
   (br $x)
   (unreachable)
  )
 )
 (func $simple-switch (result i32)
  (block $A
   (block $B
    (block $y
     (br_table $A $y $y $y $y $y $A $y $y $y $y $A $y
      (i32.const 0)
     )
     (return
      (i32.const 0)
     )
    )
    (return
     (i32.const 1)
    )
   )
   (return
    (i32.const 2)
   )
  )
  (i32.const 3)
 )
 (func $simple-switch-2 (result i32)
  (block $A
   (block $B
    (block $y
     (br_table $A $y $y $y $y $y $y $y $y $y $y $y $A $y
      (i32.const 0)
     )
     (return
      (i32.const 0)
     )
    )
    (return
     (i32.const 1)
    )
   )
   (return
    (i32.const 2)
   )
  )
  (i32.const 3)
 )
 (func $simple-switch-3 (result i32)
  (block $A
   (block $B
    (block $y
     (br_table $A $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $y $B $y
      (i32.const 0)
     )
     (return
      (i32.const 0)
     )
    )
    (return
     (i32.const 1)
    )
   )
   (return
    (i32.const 2)
   )
  )
  (i32.const 3)
 )
 (func $simple-switch43 (result i32)
  (local $0 i32)
  (block $A
   (block $B
    (block $y
     (br_if $A
      (i32.eqz
       (local.tee $0
        (i32.const 0)
       )
      )
     )
     (br_if $B
      (i32.eq
       (local.get $0)
       (i32.const 127)
      )
     )
     (br $y)
     (return
      (i32.const 0)
     )
    )
    (return
     (i32.const 1)
    )
   )
   (return
    (i32.const 2)
   )
  )
  (i32.const 3)
 )
 (func $simple-switch-5 (result i32)
  (block $A
   (block $B
    (block $y
     (br_table $A $y $y $y $y $y $A $y $y $y $y $y $A $y
      (i32.const 0)
     )
     (return
      (i32.const 0)
     )
    )
    (return
     (i32.const 1)
    )
   )
   (return
    (i32.const 2)
   )
  )
  (i32.const 3)
 )
 (func $undo-if-return (param $p i32) (result i32)
  (local $x i32)
  (block $out
   (block
    (br_if $out
     (local.get $p)
    )
    (local.set $x
     (i32.const 1)
    )
   )
   (block
    (br_if $out
     (i32.eqz
      (local.get $p)
     )
    )
    (local.set $x
     (i32.const 2)
    )
   )
   (local.set $x
    (if (result i32)
     (local.get $p)
     (then
      (br $out)
     )
     (else
      (br $out)
     )
    )
   )
  )
  (local.get $p)
 )
 (func $if-unreachable-but-declares-value (param $var$0 i32) (param $var$1 f64) (param $var$2 i32) (param $var$3 f64) (param $var$4 f32) (param $var$5 f32) (result i32)
  (local $var$6 f64)
  (if
   (i32.const 0)
   (then
    (drop
     (loop $label$3 (result i64)
      (block $label$4 (result i64)
       (block $label$5
        (block $label$6
         (local.set $var$1
          (if (result f64)
           (unreachable)
           (then
            (br $label$5)
           )
           (else
            (f64.const 1)
           )
          )
         )
        )
       )
       (i64.const 1)
      )
     )
    )
   )
  )
  (i32.const 0)
 )
 (func $if-flow-1 (result i32)
  (select
   (i32.const 1)
   (i32.const 2)
   (i32.const 0)
  )
 )
 (func $if-flow-2 (result i32)
  (if (result i32)
   (i32.const 0)
   (then
    (unreachable)
   )
   (else
    (i32.const 2)
   )
  )
 )
 (func $if-flow-3 (result i32)
  (if (result i32)
   (i32.const 0)
   (then
    (i32.const 1)
   )
   (else
    (unreachable)
   )
  )
 )
 (func $if-flow-4 (result i32)
  (if
   (return
    (i32.const 0)
   )
   (then
    (return
     (i32.const 1)
    )
   )
   (else
    (return
     (i32.const 2)
    )
   )
  )
 )
 (func $iff-flow-fuzz-bug (result i32)
  (loop $label$1
   (br_if $label$1
    (i32.eqz
     (i32.const 1)
    )
   )
   (loop $label$2
    (unreachable)
    (if
     (i32.const 0)
     (then
      (nop)
     )
     (else
      (return
       (i32.const 0)
      )
     )
    )
   )
  )
 )
 (func $fuzz-block-unreachable-brs-with-values (result i32)
  (local $0 i32)
  (loop $label$1
   (if
    (local.get $0)
    (then
     (block $label$2
      (local.tee $0
       (loop $label$5
        (br_if $label$5
         (block
          (unreachable)
          (drop
           (i32.const 0)
          )
         )
        )
       )
      )
     )
    )
    (else
     (br $label$1)
    )
   )
  )
 )
 (func $drop-restructure-if (param $x i32) (param $y i32) (result i32)
  (if (result i32)
   (local.get $y)
   (then
    (local.get $x)
   )
   (else
    (block $label$2 (result i32)
     (nop)
     (i32.const 0)
    )
   )
  )
 )
 (func $drop-restructure-if-final (param $x i32) (param $y i32) (result i32)
  (if (result i32)
   (local.get $y)
   (then
    (local.get $x)
   )
   (else
    (block $label$2 (result i32)
     (nop)
     (unreachable)
    )
   )
  )
 )
 (func $drop-restructure-if-middle (param $x i32) (param $y i32) (result i32)
  (if (result i32)
   (local.get $y)
   (then
    (local.get $x)
   )
   (else
    (block $label$2 (result i32)
     (nop)
     (nop)
     (i32.const 0)
    )
   )
  )
 )
 (func $drop-restructure-select (param $x i32) (param $y i32) (result i32)
  (select
   (local.tee $y
    (local.get $x)
   )
   (block $label$2 (result i32)
    (nop)
    (i32.const 0)
   )
   (local.get $y)
  )
 )
 (func $drop-restructure-if-bad-2 (param $x i32) (param $y i32) (result i32)
  (block $label$2 (result i32)
   (drop
    (br_if $label$2
     (local.get $y)
     (local.tee $y
      (local.get $x)
     )
    )
   )
   (i32.const 0)
  )
 )
 (func $if-block
  (if
   (i32.const 1)
   (then
    (block $label
     (block
      (drop
       (i32.const 2)
      )
      (drop
       (i32.const 3)
      )
     )
    )
   )
  )
 )
 (func $if-block-bad
  (block $label
   (if
    (br $label)
    (then
     (drop
      (i32.const 2)
     )
     (drop
      (i32.const 3)
     )
    )
   )
  )
 )
 (func $if-block-br
  (block $label
   (br_if $label
    (i32.const 1)
   )
  )
 )
 (func $if-block-br-1
  (if
   (i32.const 1)
   (then
    (block $label
    )
   )
   (else
    (drop
     (i32.const 3)
    )
   )
  )
 )
 (func $if-block-br-2
  (if
   (i32.const 1)
   (then
    (block $label
     (drop
      (i32.const 3)
     )
    )
   )
   (else
    (nop)
   )
  )
 )
 (func $if-block-br-3
  (if
   (i32.const 1)
   (then
    (block $label
    )
   )
   (else
    (nop)
   )
  )
 )
 (func $if-block-br-4-eithre
  (if
   (i32.const 1)
   (then
    (block $label
     (drop
      (i32.const 2)
     )
    )
   )
   (else
    (drop
     (i32.const 3)
    )
   )
  )
 )
 (func $if-block-br-5-value (result i32)
  (select
   (block $label (result i32)
    (i32.const 2)
   )
   (i32.const 3)
   (i32.const 1)
  )
 )
 (func $restructure-if-outerType-change
  (loop $label$1
   (br_if $label$1
    (block $label$2
     (if
      (block $label$4
       (unreachable)
      )
      (then
       (block $label$3
        (br $label$3)
       )
      )
     )
     (unreachable)
    )
   )
  )
 )
 (func $if-arm-unreachable
  (if
   (unreachable)
   (then
    (block $label$1
     (nop)
    )
   )
   (else
    (unreachable)
   )
  )
 )
 (func $propagate-type-if-we-optimize
  (if
   (i32.const 1)
   (then
    (nop)
   )
   (else
    (drop
     (loop $label$3 (result i64)
      (br_if $label$3
       (if
        (i32.const 0)
        (then
         (block $label$4
          (unreachable)
         )
        )
        (else
         (unreachable)
        )
       )
      )
      (i64.const -9)
     )
    )
    (unreachable)
   )
  )
 )
 (func $switch-to-br
  (block $A
   (block $y
    (block
     (drop
      (i32.const 0)
     )
     (br $A)
    )
   )
  )
 )
 (func $switch-to-br-value (result i32)
  (block $A (result i32)
   (block $y (result i32)
    (block
     (drop
      (i32.const 1)
     )
     (br $A
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $switch-threading-multi (param $x i32) (param $y i32) (result i32)
  (block $block$5$break
   (block $block$4$break
    (loop $shape$1$continue
     (block $block$3$break
      (block $switch$2$case$5
       (block $switch$2$case$4
        (block $switch$2$default
         (block $switch$2$case$2
          (br_table $shape$1$continue $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$5$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$3$break $block$4$break $block$3$break
           (local.get $x)
          )
         )
         (br $shape$1$continue)
        )
        (br $block$3$break)
       )
       (br $block$4$break)
      )
      (br $block$5$break)
     )
    )
    (unreachable)
   )
   (local.set $y
    (i32.const 1)
   )
   (unreachable)
  )
  (local.set $y
   (i32.const 2)
  )
  (unreachable)
 )
 (func $fuzz-type-changes-in-our-cycles (result i32)
  (loop $label$1
   (if
    (i32.const 0)
    (then
     (if
      (i32.const 0)
      (then
       (block $label$3
        (block
        )
       )
      )
      (else
       (return
        (i32.const -8192)
       )
      )
     )
    )
   )
   (br $label$1)
  )
 )
 (func $refinalize-need-br-value (result i32)
  (loop $label$3 (result i32)
   (block $label$6 (result i32)
    (block $label$10
     (unreachable)
     (block $label$503
      (br_if $label$3
       (block $label$530 (result i32)
        (br_if $label$503
         (i32.const 0)
        )
        (i32.const 0)
       )
      )
      (return
       (i32.const 127)
      )
     )
    )
   )
  )
 )
 (func $selectify (param $x i32)
  (drop
   (select
    (i32.mul
     (i32.const 2)
     (i32.const 3)
    )
    (i32.mul
     (i32.const 2)
     (i32.const 3)
    )
    (i32.eq
     (local.get $x)
     (i32.const 1)
    )
   )
  )
  (drop
   (select
    (i32.add
     (i32.const 2)
     (i32.const 3)
    )
    (i32.add
     (i32.const 2)
     (i32.const 3)
    )
    (i32.eq
     (local.get $x)
     (i32.const 1)
    )
   )
  )
 )
 (func $selectify-even-with-condition-side-effects (param $0 i32)
  (drop
   (select
    (i32.const 1)
    (i32.const 0)
    (i32.rem_s
     (local.get $0)
     (i32.const 2)
    )
   )
  )
 )
 (func $no-selectify-when-arm-side-effects (param $0 i32)
  (drop
   (if (result i32)
    (i32.rem_s
     (local.get $0)
     (i32.const 2)
    )
    (then
     (local.tee $0
      (i32.const 1)
     )
    )
    (else
     (i32.const 0)
    )
   )
  )
  (drop
   (if (result i32)
    (i32.rem_s
     (local.get $0)
     (i32.const 2)
    )
    (then
     (i32.const 0)
    )
    (else
     (local.tee $0
      (i32.const 1)
     )
    )
   )
  )
 )
 (func $no-selectify-when-effects-invalidate (param $0 i32)
  (local $1 i32)
  (drop
   (if (result i32)
    (i32.rem_s
     (local.tee $0
      (i32.const 3)
     )
     (i32.const 2)
    )
    (then
     (local.get $0)
    )
    (else
     (i32.const 0)
    )
   )
  )
  (drop
   (if (result i32)
    (i32.rem_s
     (local.tee $0
      (i32.const 3)
     )
     (i32.const 2)
    )
    (then
     (i32.const 0)
    )
    (else
     (local.get $0)
    )
   )
  )
  (drop
   (select
    (i32.const 0)
    (local.get $1)
    (i32.rem_s
     (local.tee $0
      (i32.const 3)
     )
     (i32.const 2)
    )
   )
  )
 )
 (func $if-one-side (result i32)
  (local $x i32)
  (local.set $x
   (select
    (i32.const 2)
    (local.get $x)
    (i32.const 1)
   )
  )
  (local.get $x)
 )
 (func $if-one-side-b (result i32)
  (local $x i32)
  (local.set $x
   (select
    (local.get $x)
    (i32.const 2)
    (i32.const 1)
   )
  )
  (local.get $x)
 )
 (func $if-one-side-tee-etc (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)
  (drop
   (call $if-one-side-tee-etc
    (local.tee $x
     (select
      (i32.const -4)
      (local.get $x)
      (i32.const -3)
     )
    )
   )
  )
  (i32.const 0)
 )
 (func $ifs-copies-recursive (param $20 i32) (result i32)
  (if
   (i32.const 1)
   (then
    (local.set $20
     (select
      (select
       (i32.const 4)
       (local.get $20)
       (i32.const 3)
      )
      (local.get $20)
      (i32.const 2)
     )
    )
   )
  )
  (local.get $20)
 )
 (func $if-copy1
  (local $x i32)
  (local $y i32)
  (loop $top
   (local.set $x
    (select
     (local.get $x)
     (local.get $y)
     (i32.const 1)
    )
   )
   (br $top)
  )
 )
 (func $if-copy3
  (local $x i32)
  (local $y i32)
  (loop $top
   (if
    (i32.const 1)
    (then
     (local.tee $x
      (unreachable)
     )
    )
   )
   (br $top)
  )
 )
 (func $if-copy4
  (local $x i32)
  (local $y i32)
  (loop $top
   (local.set $x
    (if (result i32)
     (i32.const 1)
     (then
      (unreachable)
     )
     (else
      (local.get $y)
     )
    )
   )
   (br $top)
  )
 )
 (func $if-copy-tee
  (local $x i32)
  (local $y i32)
  (loop $top
   (drop
    (local.tee $x
     (select
      (local.get $x)
      (i32.const 2)
      (i32.const 1)
     )
    )
   )
   (br $top)
  )
 )
 (func $loop-end-set (param $x i32) (result i32)
  (loop $loop
   (nop)
   (br_if $loop
    (local.get $x)
   )
   (local.set $x
    (i32.const 1)
   )
  )
  (local.get $x)
 )
 (func $loop-end-value (param $x i32) (result i32)
  (loop $loop (result i32)
   (nop)
   (br_if $loop
    (local.get $x)
   )
   (i32.const 1)
  )
 )
 (func $do-not-flow-values-through-unreachable-code (result i32)
  (unreachable)
  (if
   (i32.const 0)
   (then
    (block $A
     (return
      (i32.const 0)
     )
    )
   )
   (else
    (nop)
   )
  )
 )
 (func $do-not-flow-values-through-unreachable-code-b (result i32)
  (loop $loop-in
   (unreachable)
   (if
    (i32.const 0)
    (then
     (block $A
      (return
       (i32.const 0)
      )
     )
    )
    (else
     (nop)
    )
   )
  )
 )
 (func $if_br_if
  (local $0 i32)
  (block $label$1
   (br_if $label$1
    (select
     (local.tee $0
      (i32.const 1024)
     )
     (i32.const 0)
     (i32.eqz
      (i32.const -4)
     )
    )
   )
   (br_if $label$1
    (select
     (i32.const 1025)
     (i32.const 0)
     (i32.eqz
      (i32.const -5)
     )
    )
   )
   (br_if $label$1
    (select
     (local.tee $0
      (i32.const 1025)
     )
     (i32.const 0)
     (i32.eqz
      (i32.const -6)
     )
    )
   )
   (if
    (i32.const 1026)
    (then
     (br_if $label$1
      (local.tee $0
       (i32.const -7)
      )
     )
    )
   )
   (i32.store
    (i32.const 1024)
    (i32.add
     (local.get $0)
     (i32.const 1)
    )
   )
  )
 )
 (func $unswitch-reordering (param $x i32) (result i32)
  (block $label$1 (result i32)
   (br_table $label$1
    (block $label$2 (result i32)
     (i32.store
      (i32.const 1)
      (i32.const 2)
     )
     (i32.const 3)
    )
    (block (result i32)
     (if
      (local.get $x)
      (then
       (return
        (i32.const 5)
       )
      )
     )
     (i32.const 6)
    )
   )
  )
 )
 (func $no-selectify-if-condition-unreachable (result i32)
  (select
   (if (result i32)
    (unreachable)
    (then
     (i32.const 3)
    )
    (else
     (i32.const 4)
    )
   )
   (i32.const 1)
   (i32.const 2)
  )
 )
)
