| (module |
| (type $FUNCSIG$vf (func (param f32))) |
| (type $FUNCSIG$v (func)) |
| (type $FUNCSIG$id (func (param f64) (result i32))) |
| (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) |
| (type $4 (func (result f64))) |
| (type $5 (func (result i32))) |
| (type $6 (func (param i32) (result i32))) |
| (type $7 (func (param f64) (result f64))) |
| (type $8 (func (result i64))) |
| (type $9 (func (param i32 i64))) |
| (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))) |
| (table 10 anyfunc) |
| (elem (i32.const 0) $z $big_negative $z $z $w $w $importedDoubles $w $z $cneg) |
| (memory $0 4096 4096) |
| (data (i32.const 1026) "\14\00") |
| (export "big_negative" (func $big_negative)) |
| (func $big_negative (type $FUNCSIG$v) |
| (local $temp f64) |
| (block $block0 |
| (set_local $temp |
| (f64.const -2147483648) |
| ) |
| (set_local $temp |
| (f64.const -2147483648) |
| ) |
| (set_local $temp |
| (f64.const -21474836480) |
| ) |
| (set_local $temp |
| (f64.const 0.039625) |
| ) |
| (set_local $temp |
| (f64.const -0.039625) |
| ) |
| ) |
| ) |
| (func $importedDoubles (type $4) (result f64) |
| (local $temp f64) |
| (block $topmost (result f64) |
| (set_local $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 (type $FUNCSIG$ddd) (param $x f64) (param $y f64) (result f64) |
| (local $t f64) |
| (local $Int f64) |
| (local $Double i32) |
| (block $topmost (result f64) |
| (if |
| (f64.gt |
| (get_local $x) |
| (f64.const 0) |
| ) |
| (br $topmost |
| (f64.const 1.2) |
| ) |
| ) |
| (if |
| (f64.gt |
| (get_local $Int) |
| (f64.const 0) |
| ) |
| (br $topmost |
| (f64.const -3.4) |
| ) |
| ) |
| (if |
| (i32.gt_s |
| (get_local $Double) |
| (i32.const 0) |
| ) |
| (br $topmost |
| (f64.const 5.6) |
| ) |
| ) |
| (if |
| (f64.lt |
| (get_local $x) |
| (get_local $y) |
| ) |
| (br $topmost |
| (get_local $x) |
| ) |
| ) |
| (get_local $y) |
| ) |
| ) |
| (func $intOps (type $5) (result i32) |
| (local $x i32) |
| (i32.eq |
| (get_local $x) |
| (i32.const 0) |
| ) |
| ) |
| (func $hexLiterals (type $FUNCSIG$v) |
| (drop |
| (i32.add |
| (i32.add |
| (i32.const 0) |
| (i32.const 313249263) |
| ) |
| (i32.const -19088752) |
| ) |
| ) |
| ) |
| (func $conversions (type $FUNCSIG$v) |
| (local $i i32) |
| (local $d f64) |
| (block $block0 |
| (set_local $i |
| (call $f64-to-int |
| (get_local $d) |
| ) |
| ) |
| (set_local $d |
| (f64.convert_s/i32 |
| (get_local $i) |
| ) |
| ) |
| (set_local $d |
| (f64.convert_u/i32 |
| (i32.shr_u |
| (get_local $i) |
| (i32.const 0) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $seq (type $FUNCSIG$v) |
| (local $J f64) |
| (set_local $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 (type $6) (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 |
| (get_local $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 |
| (get_local $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 |
| (get_local $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 (type $FUNCSIG$v) |
| (block $label$break$L |
| (br $label$break$L) |
| ) |
| ) |
| (func $frem (type $4) (result f64) |
| (call $f64-rem |
| (f64.const 5.5) |
| (f64.const 1.2) |
| ) |
| ) |
| (func $big_uint_div_u (type $5) (result i32) |
| (local $x i32) |
| (block $topmost (result i32) |
| (set_local $x |
| (i32.and |
| (i32.div_u |
| (i32.const -1) |
| (i32.const 2) |
| ) |
| (i32.const -1) |
| ) |
| ) |
| (get_local $x) |
| ) |
| ) |
| (func $fr (type $FUNCSIG$vf) (param $x f32) |
| (local $y f32) |
| (local $z f64) |
| (block $block0 |
| (drop |
| (f32.demote/f64 |
| (get_local $z) |
| ) |
| ) |
| (drop |
| (get_local $y) |
| ) |
| (drop |
| (f32.const 5) |
| ) |
| (drop |
| (f32.const 0) |
| ) |
| (drop |
| (f32.const 5) |
| ) |
| (drop |
| (f32.const 0) |
| ) |
| ) |
| ) |
| (func $negZero (type $4) (result f64) |
| (f64.const -0) |
| ) |
| (func $abs (type $FUNCSIG$v) |
| (local $x i32) |
| (local $y f64) |
| (local $z f32) |
| (local $asm2wasm_i32_temp i32) |
| (block $block0 |
| (set_local $x |
| (block $block1 (result i32) |
| (set_local $asm2wasm_i32_temp |
| (i32.const 0) |
| ) |
| (select |
| (i32.sub |
| (i32.const 0) |
| (get_local $asm2wasm_i32_temp) |
| ) |
| (get_local $asm2wasm_i32_temp) |
| (i32.lt_s |
| (get_local $asm2wasm_i32_temp) |
| (i32.const 0) |
| ) |
| ) |
| ) |
| ) |
| (set_local $y |
| (f64.abs |
| (f64.const 0) |
| ) |
| ) |
| (set_local $z |
| (f32.abs |
| (f32.const 0) |
| ) |
| ) |
| ) |
| ) |
| (func $neg (type $FUNCSIG$v) |
| (local $x f32) |
| (block $block0 |
| (set_local $x |
| (f32.neg |
| (get_local $x) |
| ) |
| ) |
| (call_indirect $FUNCSIG$vf |
| (get_local $x) |
| (i32.add |
| (i32.and |
| (i32.const 1) |
| (i32.const 7) |
| ) |
| (i32.const 8) |
| ) |
| ) |
| ) |
| ) |
| (func $cneg (type $FUNCSIG$vf) (param $x f32) |
| (call_indirect $FUNCSIG$vf |
| (get_local $x) |
| (i32.add |
| (i32.and |
| (i32.const 1) |
| (i32.const 7) |
| ) |
| (i32.const 8) |
| ) |
| ) |
| ) |
| (func $___syscall_ret (type $FUNCSIG$v) |
| (local $$0 i32) |
| (drop |
| (i32.gt_u |
| (i32.shr_u |
| (get_local $$0) |
| (i32.const 0) |
| ) |
| (i32.const -4096) |
| ) |
| ) |
| ) |
| (func $z (type $FUNCSIG$v) |
| (nop) |
| ) |
| (func $w (type $FUNCSIG$v) |
| (nop) |
| ) |
| (func $block_and_after (type $5) (result i32) |
| (block $waka |
| (drop |
| (i32.const 1) |
| ) |
| (br $waka) |
| ) |
| (i32.const 0) |
| ) |
| (func $loop-roundtrip (type $7) (param $0 f64) (result f64) |
| (loop $loop-in1 (result f64) |
| (drop |
| (get_local $0) |
| ) |
| (get_local $0) |
| ) |
| ) |
| (func $big-i64 (type $8) (result i64) |
| (i64.const -9218868437227405313) |
| ) |
| (func $i64-store32 (type $9) (param $0 i32) (param $1 i64) |
| (i64.store32 |
| (get_local $0) |
| (get_local $1) |
| ) |
| ) |
| (func $return-unreachable (result i32) |
| (return (i32.const 1)) |
| ) |
| (func $unreachable-block (result i32) |
| (f64.abs |
| (block ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (drop (i32.const 1)) |
| (return (i32.const 2)) |
| ) |
| ) |
| ) |
| (func $unreachable-block-toplevel (result i32) |
| (block ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (drop (i32.const 1)) |
| (return (i32.const 2)) |
| ) |
| ) |
| (func $unreachable-block0 (result i32) |
| (f64.abs |
| (block ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (return (i32.const 2)) |
| ) |
| ) |
| ) |
| (func $unreachable-block0-toplevel (result i32) |
| (block ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (return (i32.const 2)) |
| ) |
| ) |
| (func $unreachable-block-with-br (result i32) |
| (block $block ;; unreachable type due to last element having that type, but the block is exitable |
| (drop (i32.const 1)) |
| (br $block) |
| ) |
| (i32.const 1) |
| ) |
| (func $unreachable-if (result i32) |
| (f64.abs |
| (if ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (i32.const 3) |
| (return (i32.const 2)) |
| (return (i32.const 1)) |
| ) |
| ) |
| ) |
| (func $unreachable-if-toplevel (result i32) |
| (if ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (i32.const 3) |
| (return (i32.const 2)) |
| (return (i32.const 1)) |
| ) |
| ) |
| (func $unreachable-loop (result i32) |
| (f64.abs |
| (loop ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (nop) |
| (return (i32.const 1)) |
| ) |
| ) |
| ) |
| (func $unreachable-loop0 (result i32) |
| (f64.abs |
| (loop ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (return (i32.const 1)) |
| ) |
| ) |
| ) |
| (func $unreachable-loop-toplevel (result i32) |
| (loop ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (nop) |
| (return (i32.const 1)) |
| ) |
| ) |
| (func $unreachable-loop0-toplevel (result i32) |
| (loop ;; note no type - valid in binaryen IR, in wasm must be i32 |
| (return (i32.const 1)) |
| ) |
| ) |
| (func $unreachable-ifs |
| (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 |
| (if |
| (i32.const 1) |
| (block |
| (nop) |
| ) |
| (block |
| (unreachable) |
| (i32.const 1) ;; ends in a concrete, after an unreachable |
| ) |
| ) |
| ) |
| ) |