(module
 (type $none_=>_none (func))
 (type $none_=>_i32 (func (result i32)))
 (type $i32_=>_i32 (func (param i32) (result i32)))
 (type $f32_=>_none (func (param f32)))
 (type $none_=>_f64 (func (result f64)))
 (type $f64_f64_=>_f64 (func (param f64 f64) (result f64)))
 (type $i32_i64_=>_none (func (param i32 i64)))
 (type $f64_=>_i32 (func (param f64) (result i32)))
 (type $none_=>_i64 (func (result i64)))
 (type $f64_=>_f64 (func (param f64) (result f64)))
 (import "env" "_emscripten_asm_const_vi" (func $_emscripten_asm_const_vi))
 (import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32)))
 (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
 (memory $0 4096 4096)
 (data (i32.const 1026) "\14\00")
 (table $0 10 funcref)
 (elem (i32.const 0) $z $big_negative $z $z $w $w $importedDoubles $w $z $cneg)
 (export "big_negative" (func $big_negative))
 (func $big_negative
  (local $temp f64)
  f64.const -2147483648
  local.set $temp
  f64.const -2147483648
  local.set $temp
  f64.const -21474836480
  local.set $temp
  f64.const 0.039625
  local.set $temp
  f64.const -0.039625
  local.set $temp
 )
 (func $importedDoubles (result f64)
  (local $temp f64)
  block $topmost (result f64)
   i32.const 8
   f64.load
   i32.const 16
   f64.load
   f64.add
   i32.const 16
   f64.load
   f64.neg
   f64.add
   i32.const 8
   f64.load
   f64.neg
   f64.add
   local.set $temp
   i32.const 24
   i32.load
   i32.const 0
   i32.gt_s
   if
    f64.const -3.4
    br $topmost
   end
   i32.const 32
   f64.load
   f64.const 0
   f64.gt
   if
    f64.const 5.6
    br $topmost
   end
   f64.const 1.2
  end
 )
 (func $doubleCompares (param $x f64) (param $y f64) (result f64)
  (local $t f64)
  (local $Int f64)
  (local $Double i32)
  block $topmost (result f64)
   local.get $x
   f64.const 0
   f64.gt
   if
    f64.const 1.2
    br $topmost
   end
   local.get $Int
   f64.const 0
   f64.gt
   if
    f64.const -3.4
    br $topmost
   end
   local.get $Double
   i32.const 0
   i32.gt_s
   if
    f64.const 5.6
    br $topmost
   end
   local.get $x
   local.get $y
   f64.lt
   if
    local.get $x
    br $topmost
   end
   local.get $y
  end
 )
 (func $intOps (result i32)
  (local $x i32)
  local.get $x
  i32.const 0
  i32.eq
 )
 (func $hexLiterals
  i32.const 0
  i32.const 313249263
  i32.add
  i32.const -19088752
  i32.add
  drop
 )
 (func $conversions
  (local $i i32)
  (local $d f64)
  local.get $d
  call $f64-to-int
  local.set $i
  local.get $i
  f64.convert_i32_s
  local.set $d
  local.get $i
  i32.const 0
  i32.shr_u
  f64.convert_i32_u
  local.set $d
 )
 (func $seq
  (local $J f64)
  f64.const 0.1
  drop
  f64.const 5.1
  f64.const 3.2
  drop
  f64.const 4.2
  f64.sub
  local.set $J
 )
 (func $switcher (param $x i32) (result i32)
  block $topmost (result i32)
   block $switch-default$3
    block $switch-case$2
     block $switch-case$1
      local.get $x
      i32.const 1
      i32.sub
      br_table $switch-case$1 $switch-case$2 $switch-default$3
     end
     i32.const 1
     br $topmost
    end
    i32.const 2
    br $topmost
   end
   nop
   block $switch-default$7
    block $switch-case$6
     block $switch-case$5
      local.get $x
      i32.const 5
      i32.sub
      br_table $switch-case$6 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-case$5 $switch-default$7
     end
     i32.const 121
     br $topmost
    end
    i32.const 51
    br $topmost
   end
   nop
   block $label$break$Lout
    block $switch-default$16
     block $switch-case$15
      block $switch-case$12
       block $switch-case$9
        block $switch-case$8
         local.get $x
         i32.const 2
         i32.sub
         br_table $switch-case$15 $switch-default$16 $switch-default$16 $switch-case$12 $switch-default$16 $switch-default$16 $switch-default$16 $switch-default$16 $switch-case$9 $switch-default$16 $switch-case$8 $switch-default$16
        end
        br $label$break$Lout
       end
       br $label$break$Lout
      end
      block $while-out$10
       loop $while-in$11
        br $while-out$10
       end
       unreachable
      end
     end
     loop $while-in$14
      br $label$break$Lout
     end
     unreachable
    end
    nop
   end
   i32.const 0
  end
 )
 (func $blocker
  block $label$break$L
   br $label$break$L
  end
 )
 (func $frem (result f64)
  f64.const 5.5
  f64.const 1.2
  call $f64-rem
 )
 (func $big_uint_div_u (result i32)
  (local $x i32)
  i32.const -1
  i32.const 2
  i32.div_u
  i32.const -1
  i32.and
 )
 (func $fr (param $x f32)
  (local $y f32)
  (local $z f64)
  local.get $z
  f32.demote_f64
  drop
  local.get $y
  drop
  f32.const 5
  drop
  f32.const 0
  drop
  f32.const 5
  drop
  f32.const 0
  drop
 )
 (func $negZero (result f64)
  f64.const -0
 )
 (func $abs
  (local $x i32)
  (local $y f64)
  (local $z f32)
  (local $asm2wasm_i32_temp i32)
  i32.const 0
  local.set $asm2wasm_i32_temp
  i32.const 0
  local.get $asm2wasm_i32_temp
  i32.sub
  local.get $asm2wasm_i32_temp
  local.get $asm2wasm_i32_temp
  i32.const 0
  i32.lt_s
  select
  local.set $x
  f64.const 0
  f64.abs
  local.set $y
  f32.const 0
  f32.abs
  local.set $z
 )
 (func $neg
  (local $x f32)
  local.get $x
  f32.neg
  i32.const 1
  i32.const 7
  i32.and
  i32.const 8
  i32.add
  call_indirect (type $f32_=>_none)
 )
 (func $cneg (param $x f32)
  local.get $x
  i32.const 1
  i32.const 7
  i32.and
  i32.const 8
  i32.add
  call_indirect (type $f32_=>_none)
 )
 (func $___syscall_ret
  (local $$0 i32)
  local.get $$0
  i32.const 0
  i32.shr_u
  i32.const -4096
  i32.gt_u
  drop
 )
 (func $z
  nop
 )
 (func $w
  nop
 )
 (func $block_and_after (result i32)
  block $waka
   i32.const 1
   drop
   br $waka
  end
  i32.const 0
 )
 (func $loop-roundtrip (param $0 f64) (result f64)
  loop $loop-in1 (result f64)
   local.get $0
   drop
   local.get $0
  end
 )
 (func $big-i64 (result i64)
  i64.const -9218868437227405313
 )
 (func $i64-store32 (param $0 i32) (param $1 i64)
  local.get $0
  local.get $1
  i64.store32
 )
 (func $return-unreachable (result i32)
  i32.const 1
  return
 )
 (func $unreachable-block (result i32)
  i32.const 1
  drop
  i32.const 2
  return
 )
 (func $unreachable-block-toplevel (result i32)
  i32.const 1
  drop
  i32.const 2
  return
 )
 (func $unreachable-block0 (result i32)
  i32.const 2
  return
 )
 (func $unreachable-block0-toplevel (result i32)
  i32.const 2
  return
 )
 (func $unreachable-block-with-br (result i32)
  block $block
   i32.const 1
   drop
   br $block
  end
  i32.const 1
 )
 (func $unreachable-if (result i32)
  i32.const 3
  if
   i32.const 2
   return
  else
   i32.const 1
   return
  end
  unreachable
 )
 (func $unreachable-if-toplevel (result i32)
  i32.const 3
  if
   i32.const 2
   return
  else
   i32.const 1
   return
  end
  unreachable
 )
 (func $unreachable-loop (result i32)
  loop $loop-in
   nop
   i32.const 1
   return
  end
  unreachable
 )
 (func $unreachable-loop0 (result i32)
  loop $loop-in
   i32.const 1
   return
  end
  unreachable
 )
 (func $unreachable-loop-toplevel (result i32)
  loop $loop-in
   nop
   i32.const 1
   return
  end
  unreachable
 )
 (func $unreachable-loop0-toplevel (result i32)
  loop $loop-in
   i32.const 1
   return
  end
  unreachable
 )
 (func $unreachable-ifs
  unreachable
 )
 (func $unreachable-if-arm
  i32.const 1
  if
   nop
  else
   unreachable
  end
 )
 (func $local-to-stack (param $x i32) (result i32)
  (local $temp i32)
  i32.const 1
  call $local-to-stack
  i32.const 2
  call $local-to-stack
  drop
 )
 (func $local-to-stack-1 (param $x i32) (result i32)
  (local $temp i32)
  i32.const 1
  call $local-to-stack
  i32.const 2
  call $local-to-stack
  drop
  i32.eqz
 )
 (func $local-to-stack-1b (param $x i32) (result i32)
  (local $temp i32)
  i32.const 1
  call $local-to-stack
  i32.const 2
  call $local-to-stack
  drop
  i32.const 3
  i32.add
 )
 (func $local-to-stack-1c-no (param $x i32) (result i32)
  (local $temp i32)
  i32.const 1
  call $local-to-stack
  local.set $temp
  i32.const 2
  call $local-to-stack
  drop
  i32.const 3
  local.get $temp
  i32.add
 )
 (func $local-to-stack-2-no (param $x i32) (result i32)
  (local $temp i32)
  i32.const 1
  call $local-to-stack
  local.set $temp
  i32.const 2
  call $local-to-stack
  drop
  local.get $temp
  local.get $temp
  i32.add
 )
 (func $local-to-stack-3-no (param $x i32) (result i32)
  (local $temp i32)
  i32.const 1
  if
   i32.const 1
   call $local-to-stack
   local.set $temp
  else
   i32.const 2
   call $local-to-stack
   local.set $temp
  end
  i32.const 3
  call $local-to-stack
  drop
  local.get $temp
 )
 (func $local-to-stack-multi-4 (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  i32.const 1
  call $local-to-stack-multi-4
  i32.const 2
  call $local-to-stack-multi-4
  drop
  drop
  i32.const 3
  call $local-to-stack-multi-4
  i32.const 4
  call $local-to-stack-multi-4
  drop
 )
 (func $local-to-stack-multi-5 (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  i32.const 1
  call $local-to-stack-multi-4
  i32.const 2
  call $local-to-stack-multi-4
  drop
  drop
  i32.const 3
  call $local-to-stack-multi-4
  i32.const 4
  call $local-to-stack-multi-4
  drop
 )
 (func $local-to-stack-multi-6-justone (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  i32.const 1
  call $local-to-stack-multi-4
  i32.const 2
  call $local-to-stack-multi-4
  drop
  drop
  i32.const 3
  call $local-to-stack-multi-4
  local.set $temp2
  i32.const 4
  call $local-to-stack-multi-4
  drop
  local.get $temp2
  local.get $temp2
  i32.add
 )
 (func $local-to-stack-multi-7-justone (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  i32.const 1
  call $local-to-stack-multi-4
  local.set $temp1
  i32.const 2
  call $local-to-stack-multi-4
  drop
  local.get $temp1
  local.get $temp1
  i32.add
  drop
  i32.const 3
  call $local-to-stack-multi-4
  i32.const 4
  call $local-to-stack-multi-4
  drop
 )
 (func $local-to-stack-overlapping-multi-8-no (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  i32.const 1
  call $local-to-stack-multi-4
  local.set $temp1
  i32.const 1
  call $local-to-stack-multi-4
  i32.const 3
  call $local-to-stack-multi-4
  drop
  local.get $temp1
  i32.add
 )
 (func $local-to-stack-overlapping-multi-9-yes (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  i32.const 1
  call $local-to-stack-multi-4
  i32.const 1
  call $local-to-stack-multi-4
  i32.const 3
  call $local-to-stack-multi-4
  drop
  i32.add
 )
 (func $local-to-stack-through-control-flow
  (local $temp1 i32)
  (local $temp2 i32)
  i32.const 0
  call $local-to-stack-multi-4
  i32.const 1
  call $local-to-stack-multi-4
  i32.const 0
  if
   nop
  end
  drop
  i32.const 2
  call $local-to-stack-multi-4
  block $block
   br $block
  end
  drop
  drop
 )
 (func $local-to-stack-in-control-flow
  (local $temp1 i32)
  i32.const 0
  if
   i32.const 0
   call $local-to-stack-multi-4
   drop
  else
   i32.const 1
   call $local-to-stack-multi-4
   drop
  end
 )
 (func $remove-block (param $x i32) (result i32)
  (local $temp i32)
  i32.const 0
  call $remove-block
  i32.const 1
  call $remove-block
  i32.const 2
  call $remove-block
  drop
  i32.eqz
  i32.add
 )
)
(module
 (type $none_=>_none (func))
 (type $none_=>_i32 (func (result i32)))
 (type $i32_=>_i32 (func (param i32) (result i32)))
 (type $f32_=>_none (func (param f32)))
 (type $none_=>_f64 (func (result f64)))
 (type $f64_f64_=>_f64 (func (param f64 f64) (result f64)))
 (type $i32_i64_=>_none (func (param i32 i64)))
 (type $f64_=>_i32 (func (param f64) (result i32)))
 (type $none_=>_i64 (func (result i64)))
 (type $f64_=>_f64 (func (param f64) (result f64)))
 (import "env" "_emscripten_asm_const_vi" (func $_emscripten_asm_const_vi))
 (import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32)))
 (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
 (memory $0 4096 4096)
 (data (i32.const 1026) "\14\00")
 (table $0 10 funcref)
 (elem (i32.const 0) $z $big_negative $z $z $w $w $importedDoubles $w $z $cneg)
 (export "big_negative" (func $big_negative))
 (func $big_negative (; has Stack IR ;)
  (local $temp f64)
  (block $block0
   (local.set $temp
    (f64.const -2147483648)
   )
   (local.set $temp
    (f64.const -2147483648)
   )
   (local.set $temp
    (f64.const -21474836480)
   )
   (local.set $temp
    (f64.const 0.039625)
   )
   (local.set $temp
    (f64.const -0.039625)
   )
  )
 )
 (func $importedDoubles (; has Stack IR ;) (result f64)
  (local $temp f64)
  (block $topmost (result f64)
   (local.set $temp
    (f64.add
     (f64.add
      (f64.add
       (f64.load
        (i32.const 8)
       )
       (f64.load
        (i32.const 16)
       )
      )
      (f64.neg
       (f64.load
        (i32.const 16)
       )
      )
     )
     (f64.neg
      (f64.load
       (i32.const 8)
      )
     )
    )
   )
   (if
    (i32.gt_s
     (i32.load
      (i32.const 24)
     )
     (i32.const 0)
    )
    (br $topmost
     (f64.const -3.4)
    )
   )
   (if
    (f64.gt
     (f64.load
      (i32.const 32)
     )
     (f64.const 0)
    )
    (br $topmost
     (f64.const 5.6)
    )
   )
   (f64.const 1.2)
  )
 )
 (func $doubleCompares (; has Stack IR ;) (param $x f64) (param $y f64) (result f64)
  (local $t f64)
  (local $Int f64)
  (local $Double i32)
  (block $topmost (result f64)
   (if
    (f64.gt
     (local.get $x)
     (f64.const 0)
    )
    (br $topmost
     (f64.const 1.2)
    )
   )
   (if
    (f64.gt
     (local.get $Int)
     (f64.const 0)
    )
    (br $topmost
     (f64.const -3.4)
    )
   )
   (if
    (i32.gt_s
     (local.get $Double)
     (i32.const 0)
    )
    (br $topmost
     (f64.const 5.6)
    )
   )
   (if
    (f64.lt
     (local.get $x)
     (local.get $y)
    )
    (br $topmost
     (local.get $x)
    )
   )
   (local.get $y)
  )
 )
 (func $intOps (; has Stack IR ;) (result i32)
  (local $x i32)
  (i32.eq
   (local.get $x)
   (i32.const 0)
  )
 )
 (func $hexLiterals (; has Stack IR ;)
  (drop
   (i32.add
    (i32.add
     (i32.const 0)
     (i32.const 313249263)
    )
    (i32.const -19088752)
   )
  )
 )
 (func $conversions (; has Stack IR ;)
  (local $i i32)
  (local $d f64)
  (block $block0
   (local.set $i
    (call $f64-to-int
     (local.get $d)
    )
   )
   (local.set $d
    (f64.convert_i32_s
     (local.get $i)
    )
   )
   (local.set $d
    (f64.convert_i32_u
     (i32.shr_u
      (local.get $i)
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $seq (; has Stack IR ;)
  (local $J f64)
  (local.set $J
   (f64.sub
    (block $block0 (result f64)
     (drop
      (f64.const 0.1)
     )
     (f64.const 5.1)
    )
    (block $block1 (result f64)
     (drop
      (f64.const 3.2)
     )
     (f64.const 4.2)
    )
   )
  )
 )
 (func $switcher (; has Stack IR ;) (param $x i32) (result i32)
  (block $topmost (result i32)
   (block $switch$0
    (block $switch-default$3
     (block $switch-case$2
      (block $switch-case$1
       (br_table $switch-case$1 $switch-case$2 $switch-default$3
        (i32.sub
         (local.get $x)
         (i32.const 1)
        )
       )
      )
      (br $topmost
       (i32.const 1)
      )
     )
     (br $topmost
      (i32.const 2)
     )
    )
    (nop)
   )
   (block $switch$4
    (block $switch-default$7
     (block $switch-case$6
      (block $switch-case$5
       (br_table $switch-case$6 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-case$5 $switch-default$7
        (i32.sub
         (local.get $x)
         (i32.const 5)
        )
       )
      )
      (br $topmost
       (i32.const 121)
      )
     )
     (br $topmost
      (i32.const 51)
     )
    )
    (nop)
   )
   (block $label$break$Lout
    (block $switch-default$16
     (block $switch-case$15
      (block $switch-case$12
       (block $switch-case$9
        (block $switch-case$8
         (br_table $switch-case$15 $switch-default$16 $switch-default$16 $switch-case$12 $switch-default$16 $switch-default$16 $switch-default$16 $switch-default$16 $switch-case$9 $switch-default$16 $switch-case$8 $switch-default$16
          (i32.sub
           (local.get $x)
           (i32.const 2)
          )
         )
        )
        (br $label$break$Lout)
       )
       (br $label$break$Lout)
      )
      (block $while-out$10
       (loop $while-in$11
        (block $block1
         (br $while-out$10)
         (br $while-in$11)
        )
       )
       (br $label$break$Lout)
      )
     )
     (block $while-out$13
      (loop $while-in$14
       (block $block3
        (br $label$break$Lout)
        (br $while-in$14)
       )
      )
      (br $label$break$Lout)
     )
    )
    (nop)
   )
   (i32.const 0)
  )
 )
 (func $blocker (; has Stack IR ;)
  (block $label$break$L
   (br $label$break$L)
  )
 )
 (func $frem (; has Stack IR ;) (result f64)
  (call $f64-rem
   (f64.const 5.5)
   (f64.const 1.2)
  )
 )
 (func $big_uint_div_u (; has Stack IR ;) (result i32)
  (local $x i32)
  (block $topmost (result i32)
   (local.set $x
    (i32.and
     (i32.div_u
      (i32.const -1)
      (i32.const 2)
     )
     (i32.const -1)
    )
   )
   (local.get $x)
  )
 )
 (func $fr (; has Stack IR ;) (param $x f32)
  (local $y f32)
  (local $z f64)
  (block $block0
   (drop
    (f32.demote_f64
     (local.get $z)
    )
   )
   (drop
    (local.get $y)
   )
   (drop
    (f32.const 5)
   )
   (drop
    (f32.const 0)
   )
   (drop
    (f32.const 5)
   )
   (drop
    (f32.const 0)
   )
  )
 )
 (func $negZero (; has Stack IR ;) (result f64)
  (f64.const -0)
 )
 (func $abs (; has Stack IR ;)
  (local $x i32)
  (local $y f64)
  (local $z f32)
  (local $asm2wasm_i32_temp i32)
  (block $block0
   (local.set $x
    (block $block1 (result i32)
     (local.set $asm2wasm_i32_temp
      (i32.const 0)
     )
     (select
      (i32.sub
       (i32.const 0)
       (local.get $asm2wasm_i32_temp)
      )
      (local.get $asm2wasm_i32_temp)
      (i32.lt_s
       (local.get $asm2wasm_i32_temp)
       (i32.const 0)
      )
     )
    )
   )
   (local.set $y
    (f64.abs
     (f64.const 0)
    )
   )
   (local.set $z
    (f32.abs
     (f32.const 0)
    )
   )
  )
 )
 (func $neg (; has Stack IR ;)
  (local $x f32)
  (block $block0
   (local.set $x
    (f32.neg
     (local.get $x)
    )
   )
   (call_indirect (type $f32_=>_none)
    (local.get $x)
    (i32.add
     (i32.and
      (i32.const 1)
      (i32.const 7)
     )
     (i32.const 8)
    )
   )
  )
 )
 (func $cneg (; has Stack IR ;) (param $x f32)
  (call_indirect (type $f32_=>_none)
   (local.get $x)
   (i32.add
    (i32.and
     (i32.const 1)
     (i32.const 7)
    )
    (i32.const 8)
   )
  )
 )
 (func $___syscall_ret (; has Stack IR ;)
  (local $$0 i32)
  (drop
   (i32.gt_u
    (i32.shr_u
     (local.get $$0)
     (i32.const 0)
    )
    (i32.const -4096)
   )
  )
 )
 (func $z (; has Stack IR ;)
  (nop)
 )
 (func $w (; has Stack IR ;)
  (nop)
 )
 (func $block_and_after (; has Stack IR ;) (result i32)
  (block $waka
   (drop
    (i32.const 1)
   )
   (br $waka)
  )
  (i32.const 0)
 )
 (func $loop-roundtrip (; has Stack IR ;) (param $0 f64) (result f64)
  (loop $loop-in1 (result f64)
   (drop
    (local.get $0)
   )
   (local.get $0)
  )
 )
 (func $big-i64 (; has Stack IR ;) (result i64)
  (i64.const -9218868437227405313)
 )
 (func $i64-store32 (; has Stack IR ;) (param $0 i32) (param $1 i64)
  (i64.store32
   (local.get $0)
   (local.get $1)
  )
 )
 (func $return-unreachable (; has Stack IR ;) (result i32)
  (return
   (i32.const 1)
  )
 )
 (func $unreachable-block (; has Stack IR ;) (result i32)
  (f64.abs
   (block $block
    (drop
     (i32.const 1)
    )
    (return
     (i32.const 2)
    )
   )
  )
 )
 (func $unreachable-block-toplevel (; has Stack IR ;) (result i32)
  (block $block
   (drop
    (i32.const 1)
   )
   (return
    (i32.const 2)
   )
  )
 )
 (func $unreachable-block0 (; has Stack IR ;) (result i32)
  (f64.abs
   (block $block
    (return
     (i32.const 2)
    )
   )
  )
 )
 (func $unreachable-block0-toplevel (; has Stack IR ;) (result i32)
  (block $block
   (return
    (i32.const 2)
   )
  )
 )
 (func $unreachable-block-with-br (; has Stack IR ;) (result i32)
  (block $block
   (drop
    (i32.const 1)
   )
   (br $block)
  )
  (i32.const 1)
 )
 (func $unreachable-if (; has Stack IR ;) (result i32)
  (f64.abs
   (if
    (i32.const 3)
    (return
     (i32.const 2)
    )
    (return
     (i32.const 1)
    )
   )
  )
 )
 (func $unreachable-if-toplevel (; has Stack IR ;) (result i32)
  (if
   (i32.const 3)
   (return
    (i32.const 2)
   )
   (return
    (i32.const 1)
   )
  )
 )
 (func $unreachable-loop (; has Stack IR ;) (result i32)
  (f64.abs
   (loop $loop-in
    (nop)
    (return
     (i32.const 1)
    )
   )
  )
 )
 (func $unreachable-loop0 (; has Stack IR ;) (result i32)
  (f64.abs
   (loop $loop-in
    (return
     (i32.const 1)
    )
   )
  )
 )
 (func $unreachable-loop-toplevel (; has Stack IR ;) (result i32)
  (loop $loop-in
   (nop)
   (return
    (i32.const 1)
   )
  )
 )
 (func $unreachable-loop0-toplevel (; has Stack IR ;) (result i32)
  (loop $loop-in
   (return
    (i32.const 1)
   )
  )
 )
 (func $unreachable-ifs (; has Stack IR ;)
  (if
   (unreachable)
   (nop)
  )
  (if
   (unreachable)
   (unreachable)
  )
  (if
   (unreachable)
   (nop)
   (nop)
  )
  (if
   (unreachable)
   (unreachable)
   (nop)
  )
  (if
   (unreachable)
   (nop)
   (unreachable)
  )
  (if
   (unreachable)
   (unreachable)
   (unreachable)
  )
  (if
   (i32.const 1)
   (unreachable)
   (nop)
  )
  (if
   (i32.const 1)
   (nop)
   (unreachable)
  )
  (if
   (i32.const 1)
   (unreachable)
   (unreachable)
  )
 )
 (func $unreachable-if-arm (; has Stack IR ;)
  (if
   (i32.const 1)
   (block $block
    (nop)
   )
   (block $block12
    (unreachable)
    (drop
     (i32.const 1)
    )
   )
  )
 )
 (func $local-to-stack (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp i32)
  (local.set $temp
   (call $local-to-stack
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack
    (i32.const 2)
   )
  )
  (local.get $temp)
 )
 (func $local-to-stack-1 (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp i32)
  (local.set $temp
   (call $local-to-stack
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack
    (i32.const 2)
   )
  )
  (i32.eqz
   (local.get $temp)
  )
 )
 (func $local-to-stack-1b (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp i32)
  (local.set $temp
   (call $local-to-stack
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack
    (i32.const 2)
   )
  )
  (i32.add
   (local.get $temp)
   (i32.const 3)
  )
 )
 (func $local-to-stack-1c-no (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp i32)
  (local.set $temp
   (call $local-to-stack
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack
    (i32.const 2)
   )
  )
  (i32.add
   (i32.const 3)
   (local.get $temp)
  )
 )
 (func $local-to-stack-2-no (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp i32)
  (local.set $temp
   (call $local-to-stack
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack
    (i32.const 2)
   )
  )
  (i32.add
   (local.get $temp)
   (local.get $temp)
  )
 )
 (func $local-to-stack-3-no (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp i32)
  (if
   (i32.const 1)
   (local.set $temp
    (call $local-to-stack
     (i32.const 1)
    )
   )
   (local.set $temp
    (call $local-to-stack
     (i32.const 2)
    )
   )
  )
  (drop
   (call $local-to-stack
    (i32.const 3)
   )
  )
  (local.get $temp)
 )
 (func $local-to-stack-multi-4 (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 2)
   )
  )
  (drop
   (local.get $temp1)
  )
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 3)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 4)
   )
  )
  (local.get $temp1)
 )
 (func $local-to-stack-multi-5 (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 2)
   )
  )
  (drop
   (local.get $temp1)
  )
  (local.set $temp2
   (call $local-to-stack-multi-4
    (i32.const 3)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 4)
   )
  )
  (local.get $temp2)
 )
 (func $local-to-stack-multi-6-justone (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 2)
   )
  )
  (drop
   (local.get $temp1)
  )
  (local.set $temp2
   (call $local-to-stack-multi-4
    (i32.const 3)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 4)
   )
  )
  (i32.add
   (local.get $temp2)
   (local.get $temp2)
  )
 )
 (func $local-to-stack-multi-7-justone (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 2)
   )
  )
  (drop
   (i32.add
    (local.get $temp1)
    (local.get $temp1)
   )
  )
  (local.set $temp2
   (call $local-to-stack-multi-4
    (i32.const 3)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 4)
   )
  )
  (local.get $temp2)
 )
 (func $local-to-stack-overlapping-multi-8-no (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (local.set $temp2
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 3)
   )
  )
  (i32.add
   (local.get $temp2)
   (local.get $temp1)
  )
 )
 (func $local-to-stack-overlapping-multi-9-yes (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp1 i32)
  (local $temp2 i32)
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (local.set $temp2
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (drop
   (call $local-to-stack-multi-4
    (i32.const 3)
   )
  )
  (i32.add
   (local.get $temp1)
   (local.get $temp2)
  )
 )
 (func $local-to-stack-through-control-flow (; has Stack IR ;)
  (local $temp1 i32)
  (local $temp2 i32)
  (local.set $temp2
   (call $local-to-stack-multi-4
    (i32.const 0)
   )
  )
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 1)
   )
  )
  (if
   (i32.const 0)
   (nop)
  )
  (drop
   (local.get $temp1)
  )
  (local.set $temp1
   (call $local-to-stack-multi-4
    (i32.const 2)
   )
  )
  (block $block
   (br $block)
  )
  (drop
   (local.get $temp1)
  )
  (drop
   (local.get $temp2)
  )
 )
 (func $local-to-stack-in-control-flow (; has Stack IR ;)
  (local $temp1 i32)
  (if
   (i32.const 0)
   (block $block
    (local.set $temp1
     (call $local-to-stack-multi-4
      (i32.const 0)
     )
    )
    (drop
     (local.get $temp1)
    )
   )
   (block $block13
    (local.set $temp1
     (call $local-to-stack-multi-4
      (i32.const 1)
     )
    )
    (drop
     (local.get $temp1)
    )
   )
  )
 )
 (func $remove-block (; has Stack IR ;) (param $x i32) (result i32)
  (local $temp i32)
  (i32.add
   (call $remove-block
    (i32.const 0)
   )
   (i32.eqz
    (block $block (result i32)
     (local.set $temp
      (call $remove-block
       (i32.const 1)
      )
     )
     (drop
      (call $remove-block
       (i32.const 2)
      )
     )
     (local.get $temp)
    )
   )
  )
 )
)
