(module
 (type $none_=>_i32 (func (result i32)))
 (type $none_=>_none (func))
 (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 $i32_=>_i32 (func (param i32) (result i32)))
 (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 (; 3 ;)
  (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 (; 4 ;) (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 (; 5 ;) (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 (; 6 ;) (result i32)
  (local $x i32)
  (i32.eq
   (local.get $x)
   (i32.const 0)
  )
 )
 (func $hexLiterals (; 7 ;)
  (drop
   (i32.add
    (i32.add
     (i32.const 0)
     (i32.const 313249263)
    )
    (i32.const -19088752)
   )
  )
 )
 (func $conversions (; 8 ;)
  (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 (; 9 ;)
  (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 (; 10 ;) (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 (; 11 ;)
  (block $label$break$L
   (br $label$break$L)
  )
 )
 (func $frem (; 12 ;) (result f64)
  (call $f64-rem
   (f64.const 5.5)
   (f64.const 1.2)
  )
 )
 (func $big_uint_div_u (; 13 ;) (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 (; 14 ;) (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 (; 15 ;) (result f64)
  (f64.const -0)
 )
 (func $abs (; 16 ;)
  (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 (; 17 ;)
  (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 (; 18 ;) (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 (; 19 ;)
  (local $$0 i32)
  (drop
   (i32.gt_u
    (i32.shr_u
     (local.get $$0)
     (i32.const 0)
    )
    (i32.const -4096)
   )
  )
 )
 (func $z (; 20 ;)
  (nop)
 )
 (func $w (; 21 ;)
  (nop)
 )
 (func $block_and_after (; 22 ;) (result i32)
  (block $waka
   (drop
    (i32.const 1)
   )
   (br $waka)
  )
  (i32.const 0)
 )
 (func $loop-roundtrip (; 23 ;) (param $0 f64) (result f64)
  (loop $loop-in1 (result f64)
   (drop
    (local.get $0)
   )
   (local.get $0)
  )
 )
 (func $big-i64 (; 24 ;) (result i64)
  (i64.const -9218868437227405313)
 )
 (func $i64-store32 (; 25 ;) (param $0 i32) (param $1 i64)
  (i64.store32
   (local.get $0)
   (local.get $1)
  )
 )
 (func $return-unreachable (; 26 ;) (result i32)
  (return
   (i32.const 1)
  )
 )
 (func $unreachable-block (; 27 ;) (result i32)
  (f64.abs
   (block $block
    (drop
     (i32.const 1)
    )
    (return
     (i32.const 2)
    )
   )
  )
 )
 (func $unreachable-block-toplevel (; 28 ;) (result i32)
  (block $block
   (drop
    (i32.const 1)
   )
   (return
    (i32.const 2)
   )
  )
 )
 (func $unreachable-block0 (; 29 ;) (result i32)
  (f64.abs
   (block $block
    (return
     (i32.const 2)
    )
   )
  )
 )
 (func $unreachable-block0-toplevel (; 30 ;) (result i32)
  (block $block
   (return
    (i32.const 2)
   )
  )
 )
 (func $unreachable-block-with-br (; 31 ;) (result i32)
  (block $block
   (drop
    (i32.const 1)
   )
   (br $block)
  )
  (i32.const 1)
 )
 (func $unreachable-if (; 32 ;) (result i32)
  (f64.abs
   (if
    (i32.const 3)
    (return
     (i32.const 2)
    )
    (return
     (i32.const 1)
    )
   )
  )
 )
 (func $unreachable-if-toplevel (; 33 ;) (result i32)
  (if
   (i32.const 3)
   (return
    (i32.const 2)
   )
   (return
    (i32.const 1)
   )
  )
 )
 (func $unreachable-loop (; 34 ;) (result i32)
  (f64.abs
   (loop $loop-in
    (nop)
    (return
     (i32.const 1)
    )
   )
  )
 )
 (func $unreachable-loop0 (; 35 ;) (result i32)
  (f64.abs
   (loop $loop-in
    (return
     (i32.const 1)
    )
   )
  )
 )
 (func $unreachable-loop-toplevel (; 36 ;) (result i32)
  (loop $loop-in
   (nop)
   (return
    (i32.const 1)
   )
  )
 )
 (func $unreachable-loop0-toplevel (; 37 ;) (result i32)
  (loop $loop-in
   (return
    (i32.const 1)
   )
  )
 )
 (func $unreachable-ifs (; 38 ;)
  (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 (; 39 ;)
  (if
   (i32.const 1)
   (block $block
    (nop)
   )
   (block $block12
    (unreachable)
    (drop
     (i32.const 1)
    )
   )
  )
 )
)
